tutorial por para nombre etiquetas elementos ejemplos directives directivas código cuál crear con como atributo archivo agregar jquery css twitter-bootstrap

jquery - por - Añadiendo una clase personalizada a la información sobre herramientas



directivas angular 4 ejemplos (7)

Alternativa a esta respuesta que funciona en caso de que el selector devuelva muchas informaciones sobre herramientas:

$("[id$=amount]") .tooltip() .each((i, el)=> $(el).data(''bs.tooltip'').tip().addClass(''test''));

( debería estar bien para bootstrap 2 y 3 ).

Quiero diseñar (css) algunas sugerencias de herramientas bootstrap-tooltip.js, sin afectar todas las informaciones sobre herramientas. He probado muchas soluciones diferentes, pero siempre termino agregando una clase al elemento que activa la información sobre herramientas.

Esto es lo que intenté:

$(function(){ $("[id$=amount]").tooltip({ trigger: ''manual'', placement: ''right'' }).addClass("test"); // <--- This does not help me. Class just ends up }); // in the trigger element. Se html output // from firebug below...

Pero entonces la clase simplemente termina en el elemento que activa la información sobre herramientas:

<input id="list_wishes_attributes_0_amount" class="test" <!-- The class I tried to add to the tooltip ended up here. --> type="text" tabindex="3" size="30" rel="tooltop" name="list[wishes_attributes][0][amount]" min="0" data-original-title="Only numbers please" />

¿Cómo puedo asignar una clase personalizada para mi información sobre herramientas y no el campo de entrada que la activa?


Antes de .addClass , intente agregar .parent() hasta que obtenga el div padre. Además, siempre puedes usar los selectores de jQuery para encontrar el div que deseas y actualizar el CSS desde allí.


El método que utilizo es adjuntar una clase directamente al elemento a través de JQuery (funciona en Bootstrap 3). Es un poco más complicado, porque necesita encontrar el elemento oculto, generado automáticamente a través del atributo de data del padre.

$(''#[id$=amount]'') .tooltip() .data(''bs.tooltip'') .tip() .addClass(''custom-tooltip-class'');

Prefiero esto a anular la plantilla, porque es mucho más conciso y menos detallado que todo ese HTML extra.


He creado una pequeña extensión para el complemento Bootstrap Tooltip, que nos permite agregar clases personalizadas para información sobre herramientas usando el parámetro customClass en Javascript o mediante el atributo data-custom-class en HTML.

Uso:

  • A través data-custom-class atributo data-custom-class :

data-custom-class="tooltip-custom" : crea una información sobre herramientas con la clase tooltip-custom .

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" data-custom-class="tooltip-custom" title="Custom tooltip example">Tooltip example</button>

  • a través del parámetro customClass :

customClass: ''tooltip-custom''

$(''.my-element'').tooltip({ customClass: ''tooltip-custom'' });

Preparar:

El código varía según la versión de Bootstrap utilizada (v3, v4-alpha o v4).

Bootstrap v4 (compatible con v4.0.0 y v4.1.0)

Javascript

;(function($) { if (typeof $.fn.tooltip.Constructor === ''undefined'') { throw new Error(''Bootstrap Tooltip must be included first!''); } var Tooltip = $.fn.tooltip.Constructor; // add customClass option to Bootstrap Tooltip $.extend( Tooltip.Default, { customClass: '''' }); var _show = Tooltip.prototype.show; Tooltip.prototype.show = function () { // invoke parent method _show.apply(this,Array.prototype.slice.apply(arguments)); if ( this.config.customClass ) { var tip = this.getTipElement(); $(tip).addClass(this.config.customClass); } }; })(window.jQuery);

CSS

.tooltip-custom .tooltip-inner { background-color: #5b2da3; } .tooltip-custom.bs-tooltip-top .arrow:before { border-top-color: #5b2da3; } .tooltip-custom.bs-tooltip-right .arrow:before { border-right-color: #5b2da3; } .tooltip-custom.bs-tooltip-left .arrow:before { border-left-color: #5b2da3; } .tooltip-custom.bs-tooltip-bottom .arrow:before { border-bottom-color: #5b2da3; }

Hablar con descaro a

@mixin tooltip-custom($bg-color, $color: $tooltip-color) { .tooltip-inner { background-color: $bg-color; @if $color != $tooltip-color { color: $color; } } &.bs-tooltip-top .arrow:before { border-top-color: $bg-color; } &.bs-tooltip-right .arrow:before { border-right-color: $bg-color; } &.bs-tooltip-left .arrow:before { border-left-color: $bg-color; } &.bs-tooltip-bottom .arrow:before { border-bottom-color: $bg-color; } }

Ejemplo : https://jsfiddle.net/zyfqtL9v/

Bootstrap v3.3.7

Javascript

(function ($) { if (typeof $.fn.tooltip.Constructor === ''undefined'') { throw new Error(''Bootstrap Tooltip must be included first!''); } var Tooltip = $.fn.tooltip.Constructor; $.extend( Tooltip.DEFAULTS, { customClass: '''' }); var _show = Tooltip.prototype.show; Tooltip.prototype.show = function () { _show.apply(this,Array.prototype.slice.apply(arguments)); if ( this.options.customClass ) { var $tip = this.tip() $tip.addClass(this.options.customClass); } }; })(window.jQuery);

CSS

.tooltip-custom .tooltip-inner { background-color: #5b2da3; } .tooltip-custom.top .tooltip-arrow { border-top-color: #5b2da3; } .tooltip-custom.right .tooltip-arrow { border-right-color: #5b2da3; } .tooltip-custom.left .tooltip-arrow { border-left-color: #5b2da3; } .tooltip-custom.bottom .tooltip-arrow { border-bottom-color: #5b2da3; }

Ejemplo : https://jsfiddle.net/cunz1hzc/

Bootstrap v4.0.0-alpha.6

Javascript

;(function($) { if (typeof $.fn.tooltip.Constructor === ''undefined'') { throw new Error(''Bootstrap Tooltip must be included first!''); } var Tooltip = $.fn.tooltip.Constructor; // add customClass option to Bootstrap Tooltip $.extend( Tooltip.Default, { customClass: '''' }); var _show = Tooltip.prototype.show; Tooltip.prototype.show = function () { // invoke parent method _show.apply(this,Array.prototype.slice.apply(arguments)); if ( this.config.customClass ) { var tip = this.getTipElement(); $(tip).addClass(this.config.customClass); } }; })(window.jQuery);

CSS

.tooltip-custom .tooltip-inner { background-color: #5b2da3; } .tooltip-custom.tooltip-top .tooltip-inner::before, .tooltip-custom.bs-tether-element-attached-bottom .tooltip-inner::before { border-top-color: #5b2da3; } .tooltip-custom.tooltip-right .tooltip-inner::before, .tooltip-custom.bs-tether-element-attached-left .tooltip-inner::before { border-right-color: #5b2da3; } .tooltip-custom.tooltip-bottom .tooltip-inner::before, .tooltip-custom.bs-tether-element-attached-top .tooltip-inner::before { border-bottom-color: #5b2da3; } .tooltip-custom.tooltip-left .tooltip-inner::before, .tooltip-custom.bs-tether-element-attached-right .tooltip-inner::before { border-left-color: #5b2da3; }

SASS mixin:

@mixin tooltip-custom($bg-color, $color: $tooltip-color) { .tooltip-inner { background-color: $bg-color; @if $color != $tooltip-color { color: $color; } } &.tooltip-top, &.bs-tether-element-attached-bottom { .tooltip-inner::before { border-top-color: $bg-color; } } &.tooltip-right, &.bs-tether-element-attached-left { .tooltip-inner::before { border-right-color: $bg-color; } } &.tooltip-bottom, &.bs-tether-element-attached-top { .tooltip-inner::before { border-bottom-color: $bg-color; } } &.tooltip-left, &.bs-tether-element-attached-right { .tooltip-inner::before { border-left-color: $bg-color; } }

}

Ejemplo : https://jsfiddle.net/6dhk3f5L/

Repositorio de github:

https://github.com/andreivictor/bootstrap-tooltip-custom-class


Intente establecer la opción html en true e insertar algo como <span class="test">YOUR TEXT</span> en la opción de title .

$(function(){ $("[id$=amount]").tooltip({ trigger: ''manual'', placement: ''right'', html: true, title: ''<span class="test">YOUR TEXT</span>'' }); });

Sinceramente, no estoy seguro de si esto funcionará, pero creo que vale la pena intentarlo.

EDITAR : Después de leer este post puede ser más útil.


Tal vez esto pueda ayudar a alguien así me ayudó a:

Agregue una clase personalizada a su nodo de información sobre herramientas "generado":

$(document).ready(function() { $(".my-class").tooltip({ tooltipClass:"my-custom-tooltip" }); });

Salida de muestra como último hijo del elemento body:

<div id="ui-tooltip-1" role="tooltip" class="ui-tooltip ui-widget ui-corner-all ui-widget-content my-custom-tooltip" style="top: 295px; left: 908px; display: block;"> <div class="ui-tooltip-content">My title contnet</div> </div>

Aplicado a esta lógica de preguntas:

$(function(){ $("[id$=amount]").tooltip({ trigger: ''manual'', placement: ''right'' tooltipClass:''test'' }) });

Probado utilizando jQuery UI - v1.10.3


$().tooltip({ template: ''<div class="tooltip CUSTOM-CLASS"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'' })