JavaScript Closure - 监听类的所有元素的事件

时间:2015-08-07 00:02:03

标签: javascript dom google-closure google-closure-library

是否可以将事件绑定到Closure中类的所有元素?我知道在jQuery中它就像

$('.my_class').click(...)

Closure中有类似的东西吗?像

这样的东西
goog.events.listen('.my_class', ...)

2 个答案:

答案 0 :(得分:0)

你的意思是下面的东西吗?

参考: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);

答案 1 :(得分:0)

正如joeltine已经提到的,Google Closure Lib中没有这样的原生方法。您可以使用G-Library: https://github.com/rhysbrettbowen/G-closure#gon-uid

或者创建另一个原型来提供高级的listen方法。这些成就可以为基本要素服务:

yourapp.prototype.listenAll = function(nodes, callbackFunc) {
  for (var i = 0; i < nodes.length; i++) {
    goog.events.listen(nodes[i], type, callbackFunc);
  }
};