Tengo una información sobre herramientas en un elemento de anclaje, que envía una solicitud AJAX al hacer clic. Este elemento tiene información sobre herramientas (de Twitter Bootstrap). Quiero que el contenido de la información sobre herramientas cambie cuando la solicitud AJAX regrese con éxito. ¿Cómo puedo manipular la información sobre herramientas después del inicio?
fuente
$(element).attr('title', 'NEW_TITLE').tooltip('fixTitle').tooltip('show');
$(element).attr('data-original-title', newValue).tooltip('show');
fue la solución de trabajo más simple para mí.En Bootstrap 3 es suficiente llamar
elt.attr('data-original-title', "Foo")
ya que los cambios en el"data-original-title"
atributo ya desencadenan cambios en la pantalla de información sobre herramientas.ACTUALIZACIÓN: puede agregar .tooltip ('show') para mostrar los cambios de inmediato, no necesita desplazar el mouse y pasar el mouse sobre el objetivo para ver el cambio en el título
fuente
.tooltip('show');
para que se muestre después de la actualizaciónpuede actualizar el texto de información sobre herramientas sin llamar realmente a show / hide:
fuente
.tooltip('show')
en el extremo de la cadena, funcionó para mí.setContent
yshow
hace el truco! puedes cambiardata-original-title
directamente en lugar de usarfixTitle
Heres una buena solución si desea cambiar el texto sin cerrar y volver a abrir la información sobre herramientas.
de esta manera, el texto se reemplaza sin cerrar la información sobre herramientas (no se reposiciona, pero si está haciendo un cambio de una palabra, etc., debería estar bien). y cuando coloca el cursor sobre + información sobre herramientas, todavía se actualiza.
** esto es bootstrap 3, para 2 probablemente tengas que cambiar los datos / nombres de clase
fuente
$tip
que no es un atributo de$(element)
$(element).attr('title', newTitle).tooltip('fixTitle').parent().find('.tooltip .tooltip-inner').text(newTitle);
para Bootstrap 4:
fuente
Esto funciona si la información sobre herramientas se ha instanciado (posiblemente con javascript):
fuente
$('#tooltip_id').data('bs.tooltip').options.title = 'New_value!';
Para bootstrap 3.x
Esto parece la solución más limpia:
Show se usa para actualizar el título de inmediato y no esperar a que la información sobre herramientas se oculte y se muestre nuevamente.
fuente
Aquí hay una actualización para Bootstrap 4 :
Pero la mejor manera es hacer esto:
o en línea:
Desde el lado de UX, solo ve que el texto se cambia sin efectos de desvanecimiento u ocultar / mostrar y no hay necesidad de hacerlo
_fixTitle
.fuente
Puede cambiar el
data-original-title
uso del siguiente código:fuente
Bootstrap 4
https://getbootstrap.com/docs/4.1/components/tooltips/#tooltipdispose
fuente
Lo siguiente funcionó mejor para mí, básicamente estoy desechando cualquier información sobre herramientas existente y sin molestarme en mostrar la nueva información sobre herramientas. Si se llama a show en la información sobre herramientas como en otras respuestas, aparece incluso si el cursor no se encuentra sobre él.
La razón por la que elegí esta solución es que las otras soluciones, al reutilizar la información sobre herramientas existente, condujeron a algunos problemas extraños con la información sobre herramientas que a veces no se muestra al pasar el cursor sobre el elemento.
fuente
data('bs.tooltip')
lugar dedata('tooltip')
En bootstrap 4 solo uso
$(el).tooltip('dispose');
luego recrear como normal. Por lo tanto, puede colocar la disposición antes de una función que crea información sobre herramientas para asegurarse de que no se duplique.Tener que verificar el estado y jugar con los valores parece menos amigable.
fuente
Puede establecer contenido en la llamada de información sobre herramientas con una función
No tiene que usar solo el título del elemento llamado.
fuente
Gracias, este código fue muy útil para mí, lo encontré efectivo en mis proyectos
$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');
fuente
Destruya cualquier información sobre herramientas preexistente para que podamos repoblar con nuevo contenido de información sobre herramientas
fuente
No pude obtener ninguna de las respuestas funcionando, aquí hay una solución:
fuente
Creo que Mehmet Duran tiene casi razón, pero hubo algunos problemas al usar varias clases con la misma información sobre herramientas y su ubicación. El siguiente código también evita errores de js que comprueban si hay alguna clase llamada "tooltip_class". Espero que esto ayude.
fuente
Cambie el texto alterando el texto en el elemento directamente. (no actualiza la posición de información sobre herramientas).
Cambie el texto destruyendo la información sobre herramientas anterior, luego creando y mostrando una nueva. (Hace que el viejo se desvanezca y el nuevo se desvanezca)
Estoy usando el método superior tanto para animar el "Ahorro". mensaje (
 
para que la información sobre herramientas no cambie de tamaño) y para cambiar el texto a "Listo". (más relleno) cuando se completa la solicitud.fuente
Esto funcionó para mí: (bootstrap 3.3.6; jquery = 1.11.3)
El atributo
data-html="true"
permite usar html en el título de la información sobre herramientas.fuente
Con el objeto de información sobre herramientas Boostrap:
fuente
Para BS4 (y BS3 con cambios menores) ... después de horas de búsqueda y pruebas, se me ocurrió la solución más confiable para este problema e incluso resuelve el problema de abrir más de una (información sobre herramientas o popover) al mismo tiempo, y el problema de abrirse automáticamente después de perder el foco, etc.
fuente
Solo probé esto en bootstrap 4 y sin llamar a .show ()
fuente
puede usar este código para ocultar la información sobre herramientas, cambiar su título y mostrar la información sobre herramientas nuevamente, cuando la solicitud ajax regrese con éxito.
fuente
Estoy usando esta salida fácil:
fuente
Es útil si necesita cambiar el texto de la información sobre herramientas después de que se haya inicializado con attr 'data-original-title'.
fuente