JavaScript - связывание / открепление событий с прототипом - PullRequest
0 голосов
/ 28 февраля 2011

Я хочу наблюдать за двумя пользовательскими событиями с помощью прототипа и отсоединить одно из них.

То есть, когда браузер загружает элементы DOM, я хочу зарегистрировать следующие события: "customEvent: Task1"и "customEvent: Task2".Эти два события наблюдаются на всей странице.

Когда вызывается / выполняется «customEvent: Task1», я хочу отменить привязку / отменить регистрацию события «customEvent: Task2» на странице.Когда вызывается «customEvent: Task2», он просто выполняет функцию.

Так, как я могу регистрировать (связывать) и отменять регистрацию (отменять) события, используя каркас прототипа.

Заранее спасибо засправка.

Редактировать: Зарегистрированные пользовательские события не привязаны к элементу, а доступны на всей странице.Надеюсь, это имеет смысл.

Еще раз спасибо.

1 Ответ

1 голос
/ 28 февраля 2011

Вы бы использовали Event.on для чего-то глобального, такого как сам документ:
(Event.on является новым для Prototype 1.7)

document.on('customEvent:Task1', function(event, element) {
    if (customEventTask2) customEventTask2.stop();
});
var customEventTask2 = document.on('customEvent:Task1', function(event, element) {
    // This is your second event type
});

Тогда, конечно, все, что осталось, это fire некоторые события.

document.fire('customEvent:Task1');
document.fire('customEvent:Task2'); // Should not fire
...