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

Mir*_*rod 2 mootools javascript-events

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

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

例如:

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

    // Filter
    $$('.filterButton').addEvent('click', function(event) {
        alert('wow');
    });
});
Run Code Online (Sandbox Code Playgroud)

Dim*_*off 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
});
Run Code Online (Sandbox Code Playgroud)

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

更多:

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

请记住,事件委托从1.4开始就在mootools-core中 - 它曾经在mootools中 - 在此之前更多,这意味着自定义构建.