要素がいつ生きているかを確認する必要があります。
$('#obj').livequery(function() { ... });
ライブメソッドまたは別の方法でそれを行うにはどうすればよいですか?
これは古い質問ですが、記録のために、ここに私の 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();
});
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);
要素を 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');
それは古い質問ですが、単純なので答えがないことに驚いています。on()を使用して、イベントを親または本体に添付する必要があります。元 :
$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });
なる
$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });
DOMNodeInserted は IE9+ であることに注意してください