qTip (jQuery plug-in) how can I remove all qtips in my page?

后端 未结 10 1883
醉话见心
醉话见心 2021-02-04 00:30

I\'m using the jquery-plugin qTip. What\'s the command to destroy all tooltips in my page ?

I tried:

$(\'.option img[title], span.taxonomy-image-link-al         


        
相关标签:
10条回答
  • 2021-02-04 00:54

    I experienced that the api-call

    $(selector).qtip('destroy')
    

    doesn't remove all qtip-data dependably, especially when using several qtips simultaneously.

    In my case I had to remove a visible qtip and successfully used this workaround:

    $(selector).removeData('qtip');
    $('.qtip :visible').remove();
    
    0 讨论(0)
  • 2021-02-04 00:54

    None of these answers helped me.

    In my case, I had a qtip on an element with a close button. The close button removed the element, so there was no reference point to remove the qtip after the element was removed.

    I thought $('.qtip:visible').remove() would work, but it somehow removed all of the qtips on the page, and not the single one that I wanted removed.

    I noticed that the visible qtip is given a class qtip-active, so what worked for me was:

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

    0 讨论(0)
  • 2021-02-04 00:56

    qtip("destroy") is buggy (version 2.1.1) and doesn't clear everything.

    I found this as a proper workaround:

    // 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");
    }
    
    0 讨论(0)
  • 2021-02-04 00:58

    I've solved with $(".qtip").remove();

    0 讨论(0)
  • 2021-02-04 00:59
    $('.qtip').each(function(){
      $(this).data('qtip').destroy();
    })
    
    0 讨论(0)
  • 2021-02-04 01:05

    It may be a little late, but I had issues with memory and page load when an ajax call replace the content in the page, deleting the target qtip2 objects before destroy them, so some elements remains even if the target had gone.

    Based on the fact that sometimes you want to clean all qtips2 elements and data, no matter if the original object exist or not, some tooltip elements remains on the body, so when the original target has gone there is no easy way to call the destroy() method.

    Unless you do it searching for the created objects instead of the targets.

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

    I used JQuery for a no conflict issue, but you can use "$" (symbol) instead of JQuery

    0 讨论(0)
提交回复
热议问题