可以在Jquery中为项目加载到DOM时附加处理程序吗?

时间:2011-05-29 11:50:27

标签: jquery javascript-events

我知道我可以这样做:

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

但是如何在匹配元素加载到DOM(现在或将来)时定义要调用的处理程序

由于

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我想到的唯一方法是在不使用插件的情况下实现这一目标:

$('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

注意:

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

答案 2 :(得分:-2)

这样做的一种方法是将所有公共div分配到同一个类并使用:

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