Добавить событие в динамически генерируемый элемент

Как я могу добавить событие к элементу, который был загружен AJAX.

jQuery имеет live, но что эквивалентно Mootools?

Например:

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

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

person Mirgorod    schedule 08.12.2011    source источник
comment
возможный дубликат как реализовать событие живой привязки jQuery на мутулс?. Вы ищете, прежде чем задавать вопрос? Если ввести слово mootools jquery live equivalent в окно поиска Google, вы сразу же получите ответ. И неудивительно, что он находится в StackOverflow :-) Я имею в виду, что это занимает около 10 секунд, возможно, даже меньше, если у вас есть ярлык для открытия и поиска в Google.   -  person Darin Dimitrov    schedule 08.12.2011
comment
этот ответ очень устарел, так что он спросил.   -  person Dimitar Christoff    schedule 08.12.2011


Ответы (1)


эквивалент 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

имейте в виду, что делегирование событий находится в mootools-core с версии 1.4 — раньше оно было в mootools-more, что означает пользовательскую сборку.

person Dimitar Christoff    schedule 08.12.2011