【问题标题】:jQuery check if onClick exists on elementjQuery检查元素上是否存在onClick
【发布时间】:2009-12-07 10:33:18
【问题描述】:

我找到了去check if event exists on element 的路。但它不适用于非 jQuery 委托的事件...

当我尝试时,

$("a").data("events");

为此。

<a href="#" onClick="alert('Hello, World!')" />

它返回未定义。

有没有办法用jQuery检查元素上是否存在onClick

谢谢。

【问题讨论】:

    标签: javascript jquery javascript-events


    【解决方案1】:

    你可以这样做:

    if ($('a').attr("onClick") != undefined) {}
    

    【讨论】:

      【解决方案2】:

      只要做:

      if( myelement.onclick != null )
      {
         //onclick exists
      }
      else
      {
         //onclick doesn't exist
      }
      

      不需要 jQuery。

      【讨论】:

      • 我正在尝试测试是否已将事件侦听器设置为 JS 单元测试的一部分...我如何测试它是否已设置?这不起作用,总是返回 true... console.log(document.body.click.length); document.body.addEventListener('click', function () { alert('hi')},false) console.log(document.body.click.length);
      【解决方案3】:
      if( $('#elementName').click == undefined)  
         { //event handler doesn't exist }
      else 
         { //handler exists }
      

      【讨论】:

        【解决方案4】:

        我认为以下事情也应该起作用

        if ($(yourElement).attr("onClick").length != 0) {}
        
        if ($(yourElement).attr("onClick").size() != 0) {}
        

        谢谢

        【讨论】:

          【解决方案5】:

          当然,这里有一些有效的答案,这是一个很好的答案。

          if ($('a').attr("onClick") != undefined) {}
          

          但我为你找到了最好的答案,因为我们都在处理超链接,所以会寻找 href 属性。

          if ($('a').attr("href") != undefined) {}
          

          我特别喜欢这种方法。

          【讨论】:

            猜你喜欢
            • 2014-02-17
            • 2011-06-26
            • 2011-07-14
            • 2011-03-25
            • 2012-12-05
            • 1970-01-01
            • 2011-06-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多