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);
  }
};
Другие вопросы по тегам