在jQuery中,是否可以附加一个处理程序,用于当一个项被加载到DOM时?

dz6r00yl  于 2022-12-12  发布在  jQuery
关注(0)|答案(3)|浏览(98)

我知道我可以做到这一点:

$("#my_div").live("click", function() {
  alert("My Div was clicked");
}

但是,如何定义一个处理程序,以便在将匹配元素加载到DOM(现在或将来)时调用它呢?

oxcyiej7

oxcyiej71#

看一下Live Query,它允许您在将匹配的元素添加到DOM时触发事件。

gcuhipw9

gcuhipw92#

我能想到的不使用插件实现此目的的唯一方法是:

$('selecter').bind('DOMNodeInserted',
    function(){
        if ($('.newElementClassName').length > countOfNewDivs) {
            // new element matching new element's class-name has been added
            countOfNewDivs++;
            alert(countOfNewDivs);
        }
    });

JS Fiddle demo

注意:

这只在Chromium 11和Firefox 4以及Ubuntu 11.04上进行过测试;我不认为这种方法在IE中可能有效,但我无法测试。

k10s72fa

k10s72fa3#

一种方法是为所有公共div分配相同的类,并使用:

$(".myDIVClass").live("click", function() {
  alert("My Div was clicked");
}

相关问题