7

要素がいつ生きているかを確認する必要があります。

$('#obj').livequery(function() { ... });

ライブメソッドまたは別の方法でそれを行うにはどうすればよいですか?

4

4 に答える 4

2

これは古い質問ですが、記録のために、ここに私の 5 セントを示します。


代替手段は、たとえばこの実装 jQuery Tiny Pub/Sublivequeryを使用したアプローチを使用することです。jQuery の本当に、本当に、本当に小さな pub/sub 実装です。Publish/Subscribe

たとえば、次のように使用します。

// inform of DOM change (mostly through AJAX)
$.publish("/table/loaded");

// re-execute plugin
$.subscribe("/table/loaded", function(e, data) {
    $("#my_id input[name='date']").datepicker();
});

+info : JavaScript のスケーラビリティを高めるためのパブリッシュ/サブスクライブ パターンの理解

于 2012-10-30T16:57:21.670 に答える
1

livequery プラグインの代わりに、$.whenLive jQuery プラグインを見ることができます。

$.whenLive を使用すると、1 つ以上の要素の DOM ツリーの挿入を追跡できます。

http://bitcubby.com/tracking-the-insertion-of-javascript-components-into-the-dom/

そのページの例を次に示します。

var widget = $("<div>I am a nobody. Nobody is perfect. Therefore, I am perfect.</div>");
$(widget).onLive(function() {
    // Awesomesauce.
    var height = $(this).height();
    var width = $(this).width();
});
$("body").append(widget);
于 2014-01-15T09:12:43.657 に答える
1

要素を DOM に追加するのがコードである場合は、作成時にコードを実行します。

$('body').append('<div id="obj">some new object</div>');

var obj = $('#obj');

obj.runSomeCode();

...または、追加する前にそれを行うこともできます:

var obj = $('<div id="obj">some new object</div>');

obj.runSomeCode();

obj.appendTo('body');
于 2011-07-01T18:22:27.630 に答える
0

それは古い質問ですが、単純なので答えがないことに驚いています。on()を使用して、イベントを親または本体に添付する必要があります。元 :

$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });

なる

$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });

DOMNodeInserted は IE9+ であることに注意してください

于 2016-12-22T14:12:20.353 に答える