$('#j_unoffered').on('click', '.icon_del', function () {...
这将在元素j_unoffered
上放置一个处理程序,如果任何带有类icon_del
的后代元素被点击,则触发该处理程序。 它还适用于随后创建的任何icon_del
元素。
我可以在Closure中使其正常工作,其中单击在元素本身上。
goog.events.listen(
goog.dom.getElement('j_unoffered'),
goog.events.EventType.CLICK,
function(e) {...
如何在Closure中指定一个父事件目标,使其对其子/后代起作用,就像jQuery示例一样?
我假设我需要以某种方式使用setParentEventTarget,但我不确定如何为DOM事件实现它。我找到的大部分文档都涉及自定义派发事件。
-- 更新 --
我想知道这个非常简单的解决方案是否存在问题:
goog.events.listen(
goog.dom.getElement('j_unoffered'),
goog.events.EventType.CLICK,
function(e) {
if (e.target.className.indexOf('icon_del') !== -1) {...
这仍然将this
绑定到父级,但e.target
提供了一种解决方法。在listen
中的第五个参数(opt_handler)允许您将this
绑定到其他内容,所以我想那也是一种选择。
on
调用,并使用了addEventListener
。它的效果相同:http://jsfiddle.net/g3Vj6/2/。我认为你需要在这里使用 DOM 遍历,就像我的代码中一样。 - Tonyspan
的原因是因为e.target
是a
!! 尝试使用console.log(e.target);
:) - NickenterDocument
中)。正如我之前所说,Closure使用其他范例。 - Tony