plugin javascript jquery jquery-plugins qtip

javascript - plugin - tooltip fullcalendar



qTip(complemento de jQuery) ¿cómo puedo eliminar todos los qtips de mi página? (10)

Experimenté que el api-call

$(selector).qtip(''destroy'')

no elimina todos los datos qtip de manera confiable, especialmente cuando se usan varios qtips simultáneamente.

En mi caso, tuve que eliminar una qtip visible y utilicé con éxito esta solución:

$(selector).removeData(''qtip''); $(''.qtip :visible'').remove();

Estoy usando el qquip jquery-plugin. ¿Cuál es el comando para destruir todos los tooltips en mi página?

Lo intenté:

$(''.option img[title], span.taxonomy-image-link-alter img[title]'').qtip("destroy");

Pero no funcionó ... Gracias


He resuelto con $(".qtip").remove();


Ninguna de estas respuestas me ayudó.

En mi caso, tuve una qtip en un elemento con un botón de cierre. El botón de cerrar eliminó el elemento, por lo que no había ningún punto de referencia para eliminar la qtip después de que se eliminara el elemento.

Pensé que $(''.qtip:visible'').remove() funcionaría, pero de alguna manera eliminó todos los qtips de la página, y no el único que quería eliminar.

Noté que a la qtip visible se le asigna una qtip-active clase, así que lo que funcionó para mí fue:

$(''.qtip-active'').remove();


Parece buggy. He tenido algo de suerte con esto, pero no restaura los títulos originales. Sospecho que destroy tampoco hace eso ...

$(''span.taxonomy-image-link-alter img'') .filter(function(){return $(this).data(''qtip'');}) .qtip(''destroy'');

Parece que no puede llamar a destroy en elementos sin qTip - no falla silenciosamente, pero lanza una excepción y detiene el bucle.


Puede que sea un poco tarde, pero tuve problemas con la memoria y la carga de la página cuando una llamada ajax reemplazó el contenido de la página, eliminando los objetos qtip2 de destino antes de destruirlos, por lo que algunos elementos permanecen aunque el objetivo haya desaparecido.

Basado en el hecho de que a veces desea limpiar todos los elementos y datos qtips2, sin importar si el objeto original existe o no, algunos elementos de información sobre herramientas permanecen en el cuerpo, por lo que cuando el objetivo original se ha ido, no hay una manera fácil de llamar a la destrucción. () método.

A menos que lo hagas buscando los objetos creados en lugar de los objetivos.

jQuery(''div[id^="qtip-"]'').each(function(){ //search for remaining objects _qtip2 = jQuery(this).data("qtip"); //access the data where destroy() exist. //if it''s a proper qtip2 object then call the destroy method. if(_qtip2 != undefined){ // the "true" is for immediate destroy _qtip2.destroy(true); } //if everything went right the data and the remaining objects in the body must be gone. });

Usé JQuery para un problema sin conflicto, pero puedes usar "$" (símbolo) en lugar de JQuery


Qué pasa:

$(''[data-hasqtip]'').qtip(''destroy'', true);

Parece estar trabajando con qTip2 versión 3.0.2 .


qTip2 es la versión más reciente de este script, pero me gustaría señalar una cosa.

$(".qtip").remove();

Esta pieza de código no destruyó todas las informaciones sobre herramientas, simplemente eliminó sus contenedores. Todos los controladores y eventos adjuntos a los objetos que invocan la información sobre herramientas todavía están disponibles en la memoria del navegador.

En qTip para eliminar la información sobre herramientas y su manejador de manera completa, tendría que usar:

$(mytooltip).qtip("destroy");

o

$(mytooltip).qtip(''api'').destroy();

En qTip2 sin embargo usando esto:

$(mytooltip).remove();

Automáticamente llamaría a la API y destruiría la información sobre herramientas y sus manejadores por completo.


qtip("destroy") tiene errores (versión 2.1.1) y no borra todo.

Encontré esto como una solución adecuada:

// don''t call destroy if not needed if (element.data("qtip")) { // the ''true'' makes the difference element.qtip("destroy",true); // extra cleanup element.removeData("hasqtip"); element.removeAttr("data-hasqtip"); }


if ( jQuery( ''.qtip'' ).length > 0 ) { jQuery( "#IdElement").qtip("destroy"); }


$(''.qtip'').each(function(){ $(this).data(''qtip'').destroy(); })