我需要檢查時,一個元素是活的,我做的:替代jQuery livequery插件?
$('#obj').livequery(function() { ... });
我怎麼能活方法或另一種方式做到這一點?
我需要檢查時,一個元素是活的,我做的:替代jQuery livequery插件?
$('#obj').livequery(function() { ... });
我怎麼能活方法或另一種方式做到這一點?
如果這是你的代碼,該代碼添加元素的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');
我只想要一個替代插件livequery ... – Codnickers453
那麼,作爲使用livequery的替代方法,您可以在將元素淡入頁面時自行運行該函數。 – Rup
@Rapososoo:這是使用livequery的替代方案。如果您不想自動進行livequery,則需要手動進行編碼,無論如何,這是一個更好的做法。 – user113716
這是一個老問題,但爲了記錄在案,我在這裏的5毛錢:
的替代livequery
是使用Publish/Subscribe
方法與例如本實施 jQuery Tiny Pub/Sub: A really, really, REALLY tiny pub/sub implementation for 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();
});
+信息:Understanding the Publish/Subscribe Pattern for Greater JavaScript Scalability
作爲替代的liveQuery插件,您可以看看$ .whenLive jQuery插件:
$ .whenLive允許您跟蹤一個或多個元素的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);
這是一個老問題,但我很驚訝,沒有答案,因爲它很簡單。您必須使用on()並將活動附加到父母或身體。例如:
$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });
成爲
$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });
注意DOMNodeInserted是IE9 +
它說的是你動態生成或者是存在於您的網頁時,它的加載(不止一次?)? (即你可以使用'$(document).ready(...);'?) – Rup
我會用javascript生成這個'#obj'然後它是動態的 – Codnickers453
idk爲什麼但是當我在某些元素中執行fadeIn ,livequery插件將無法正常工作,因此我想找到一個新的替代方案。 – Codnickers453