24

jquery-plugin qTip を使用しています。ページ内のすべてのツールチップを破棄するコマンドは何ですか?

私は試した:

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

しかし、うまくいきませんでした...ありがとう

4

10 に答える 10

26

私は解決しました$(".qtip").remove();

于 2010-04-28T10:27:46.707 に答える
19

qTip2 はこのスクリプトの新しいバージョンですが、1 つ指摘したいことがあります。

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

このコードはすべてのツールチップを破壊したわけではなく、単にコンテナーを削除しただけです。ツールチップを呼び出したオブジェクトに関連付けられたすべてのハンドラーとイベントは、ブラウザーのメモリで引き続き利用できます。

qTip でツールチップとそのハンドラーを完全に削除するには、次を使用する必要があります。

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

また

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

ただし、qTip2ではこれを使用しています:

$(mytooltip).remove();

自動的に API を呼び出し、ツールチップとそのハンドラーを完全に破棄します。

于 2011-09-20T10:04:24.177 に答える
17
$('.qtip').each(function(){
  $(this).data('qtip').destroy();
})
于 2012-04-11T09:48:10.537 に答える
12

qtip("destroy")バグがあり (バージョン 2.1.1)、すべてをクリアするわけではありません。

私はこれを適切な回避策として見つけました:

// 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");
}
于 2013-09-17T12:05:40.137 に答える
2

バギーに見えます。これで運が良かったのですが、元のタイトルは復元されません。私destroyはそれもしないと思います...

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

qTip なしで要素を呼び出すことはできないようですdestroy-サイレントに失敗することはありませんが、例外をスローしてループを停止します。

于 2010-04-28T07:48:23.203 に答える
2

私はAPIコールを経験しました

$(selector).qtip('destroy')

特に複数のqtipを同時に使用する場合、すべてのqtipデータを確実に削除するわけではありません。

私の場合、目に見えるqtip を削除する必要があり、この回避策をうまく使用しました。

$(selector).removeData('qtip');
$('.qtip :visible').remove();
于 2012-09-01T21:41:09.563 に答える
0
   if ( jQuery( '.qtip' ).length > 0 )
    {
        jQuery( "#IdElement").qtip("destroy");
    }
于 2012-04-12T13:10:15.120 に答える