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();
})