代码之家  ›  专栏  ›  技术社区  ›  Hellion Sundeep

是否仅在不存在其他侦听器的情况下添加JavaScript EventListener?

  •  5
  • Hellion Sundeep  · 技术社区  · 16 年前

    在JavaScript编程领域,我是一个相对的提洛,所以请对我放轻松。-)

    我正在尝试将EventListener添加到页面上的各种DOM元素中。但是,我添加的一些元素已经有了一个事件监听器,我不想取代它;我只想将我的事件添加到一个没有关联事件的元素中。

    我已经浏览了许多与AddEventListener、Event.Stoppropagation、EventBubbling等相关的内容,但还没有找到实现这一点的任何方法。

    有没有一种方法可以检测给定元素上的其他事件侦听器,或者其他方法可以到达我想要的位置?

    1 回复  |  直到 16 年前
        1
  •  1
  •   raphael    16 年前

    您可以使用以下方法检查给定元素的on[event]属性是否设置:

    if (typeof(document.getElementById("element-id").onclick) == "undefined") {
      // event undefined
    }
    
    if (typeof(document.getElementById("element-id").onclick) == "function") {
      // event defined
    }
    

    注意,如果使用诸如jquery之类的JavaScript库来定义事件(例如,通过使用 $("#element-id").click() )我建议你用 jQuery 你可以 handle events 很容易。

    编辑: 呃,好吧,如果你也在使用AddEventHandler,那么它就不起作用了。只有使用 yourElement.onclick = anyFunction