Добавить событие в динамически сгенерированный элемент - PullRequest
2 голосов
/ 08 декабря 2011

Как добавить событие в элемент, который был загружен 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 Ответ

7 голосов
/ 08 декабря 2011

эквивалент 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 начиная с 1.4 - раньше оно было в mootools-more, что означает пользовательскую сборку.

...