3

特に、AJAX を使用して Web ページの一部を読み込んでいますjQuery.load()。これで通常のjQueryパターン

$('.classname').click(...) // Handler
// or, working with bootstrap
$("a[rel=tooltip]").tooltip() // Function

ページがロードされたときにのみ呼び出されるため、明らかに機能しなくなりました。最初の例には jQuery.on があることに気づきましたが、2 番目の例はどのように実装すればよいでしょうか?

これらをedのものにも適用する簡単な(組み込みの)方法はありますjQuery.loadか、それとも自分で回避する必要がありますか?多くの人が抱えている問題のようです。

4

1 に答える 1

1

自分で回避する必要があります。$("a[rel=tooltip]").tooltip()しかし、コールバックを呼び出すことでこれを簡単に行うことができますload()

 $('#blah').load('/somewhere.html', function () {
     $('#blah').find('a[rel="tooltip"]').tooltip();
 });

呼び出しを新しくロードされた要素のみに制限するようにしてください。そうしないとtooltip()、要素ごとにツールチップを複数回初期化することになります(これにより、奇妙な動作が発生する可能性があります)


コードの重複を避けるために、ヘルパー関数を定義する必要があります。

function initTooltip(root) {
    return $(root || document).find('a[rel="tooltip"]').tooltip();
}

これにより、初期化できますtooltip。このパラメーターはオプションであり、初期化を指定された要素の子孫のみに制限できます。例:

jQuery(document).ready(function ($) {
    initTooltip(); // equivilant to initTooltip(document);

    $('#blah').load('/somewhere.html', function () {
        initTooltip('#blah');
    });
});
于 2012-06-25T09:57:36.240 に答える