7


1

jQuery livequeryプラグインの代わりに?

要素が生きているかどうかを確認する必要があります、私はやっています:

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

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

4 Answer


2


これは古い質問ですが、記録のために、ここで私の5セント:

'' '' '

「livequery」の代替手段は、例えばこの実装で「Publish / Subscribe」アプローチを使用することですhttps://gist.github.com/661855[jQuery Tiny Pub / Sub:本当に、本当に、本当に小さなpub / sub実装jQueryの場合。]

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

// 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:http://msdn.microsoft.com/en-us/magazine/hh201955.aspx[JavaScriptのスケーラビリティを高めるためのパブリッシュ/サブスクライブパターンについて]


1


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

$('body').append('some new object');

var obj = $('#obj');

obj.runSomeCode();

…​or you can even do it before it is appended:

var obj = $('some new object');

obj.runSomeCode();

obj.appendTo('body');


1


livequeryプラグインの代替として、$。whenLive jQueryプラグインを見ることができます。

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

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

var widget = $("I am a nobody. Nobody is perfect. Therefore, I am perfect.");
$(widget).onLive(function() {
    // Awesomesauce.
    var height = $(this).height();
    var width = $(this).width();
});
$("body").append(widget);


0


これは古い質問ですが、簡単なので答えがないことに驚いています。 https://api.jquery.com/on/ [on()]を使用して、イベントを親または本文に添付する必要があります。 Ex :

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

になる

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

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