MooTools - события, запускаемые программным способом, не работают с делегированием событий.
Буду очень признателен, если кто-нибудь поможет мне понять, почему я не могу запускать события программно при использовании делегирования событий в MooTools (из класса Element.Delegation).
Есть родитель<div>
это имеетchange
слушатель на какого-то ребенка<input>
элементы. Когда событие изменения инициируется действиями пользователя, запускается обработчик на родительском элементе div, но когда я запускаю его программно сfireEvent
на любом дочернем входе ничего не происходит. Базовая настройка:
<div id="listener">
<input type="text" id="color" class="color" />
</div>
JS$("listener").addEvent("change:relay(.color)", function() {
alert("changed!!");
});
$("color").fireEvent("change"); // nothing happens
Обработчик события в родительском div не вызывается. Любая помощь приветствуется. Ура!
Смежный вопрос: Есть ли события, вызванныеfireEvent
пузырь вообще в дереве DOM? Мой текущий взлом состоит в том, чтобы отправлять событие, которое работает (но, тем не менее, взлом) -http://jsfiddle.net/SZZ3Z/1/
var event = document.createEvent("HTMLEvents")
event.initEvent("change", true);
document.getElementById("color").dispatchEvent(event); // instead of fireEvent