在我的 Google Closure 代码中,我想为 div 中的每个跨度分配一个事件。
HTML:
<div id="container">
<span>foo</span>
<span>bar</span>
<span>bacon is delicious</span>
</div>
关闭Javascript:
var container = goog.dom.getElement('container');
var spans = goog.dom.getChildren(container);
for (var i = 0; i < spans.length; i++) {
eventHandler.listen(
spans[i],
goog.events.EventType.CLICK,
function (e) {
doSomeStuff(e.target);
}
}
这个循环似乎效率低下,因为它似乎为每个跨度元素分配了一个事件节点。我可以以某种方式将单个事件节点分配给包含 div,并在跨度上的单击事件冒泡到包含 div 时运行回调函数吗?
live()
在 jQuery 中,我相信和函数之间的区别与delegate()
我在这里处理的问题相似。