将事件添加到动态生成的元素

时间:2011-12-08 17:09:13

标签: javascript-events mootools

如何将事件添加到由AJAX加载的元素中。

jQuery有live,但Mootools的等价物是什么?

例如:

window.addEvent('domready', function() {
    // some code which loads new elements by ajax

    // Filter
    $$('.filterButton').addEvent('click', function(event) {
        alert('wow');
    });
});

1 个答案:

答案 0 :(得分:7)

等效的mootools是通过delegatorElement.addEvent("event:relay(mask)", fn);,其中event可以是标准冒泡(点击,鼠标悬停/退出/离开/输入等)或非冒泡(模糊,焦点,变化等)。

代码中的

$(document.body).addEvent("click:relay(.filterButton)", function(event, element) {
    console.log(event, element === this); // event obj, true
});

最好将事件添加到dom上方的元素,例如document.id("delegatorId")

更多信息:

http://mootools.net/docs/core/Element/Element.Delegation

请记住,自1.4以来,事件委托在mootools-core中 - 它曾经在mootools中 - 在此之前更多,这意味着自定义构建。