JavaScript Closure - прослушивает событие для всех элементов класса
Можно ли привязать событие ко всем элементам класса в Closure? Я знаю, в jQuery это что-то вроде
$('.my_class').click(...)
Есть ли что-то похожее в Closure? Что-то вроде
goog.events.listen('.my_class', ...)
2 ответа
Вы имеете в виду что-то вроде ниже?
Ссылка: http://closure-library.googlecode.com/git-history/docs/namespace_goog_events.html
var source = new goog.events.EventTarget();
function handleEvent(e) {
alert('Type: ' + e.type + '; Target: ' + e.target);
}
source.listen('foo', handleEvent);
// Or: goog.events.listen(source, 'foo', handleEvent);
...
source.dispatchEvent('foo'); // will call handleEvent
...
source.unlisten('foo', handleEvent);
// Or: goog.events.unlisten(source, 'foo', handleEvent);
Как уже упоминалось в joeltine, в Google Closure Lib такого нативного метода нет. Вы можете использовать библиотеку G: https://github.com/rhysbrettbowen/G-closure
Или создайте другой прототип для предоставления расширенного метода прослушивания. Эти фракции могут служить фундаментальными элементами:
yourapp.prototype.listenAll = function(nodes, callbackFunc) {
for (var i = 0; i < nodes.length; i++) {
goog.events.listen(nodes[i], type, callbackFunc);
}
};