确定单击元素时是否发生某些事情

时间:2013-01-08 02:12:19

标签: javascript

当点击DOM元素时,是否有人对确定某事是否发生(javascript事件,或简单情况下,标记)的万无一失的方法有想法?

要检查的事情有哪些可能性?例如,您可以检查<a>标记,onclick事件等。

在更复杂的情况下,Javascript可能只是检测点击落在页面上的位置并根据具体情况采取行动(即事件与元素无关,而是整个页面,当点击发生时,它会检查它落在了它上面。

2 个答案:

答案 0 :(得分:0)

也许不是一个直接的答案,但VisualEvent是一个JS库,可以检查大量的事件处理程序,包括本机和库附加的处理程序。它是开源的,所以你可以看到他们是如何做到的。

答案 1 :(得分:0)

这是我刚刚做过的粗略事情:

HTML(返回false):

<a id="link">Blah</a>

HTML(返回true):

<a id="link" href="">Blah</a>

使用Javascript:

var thelink = document.getElementById("link");

//$(thelink).on("click",function(){alert('boom');});

function hasClickHandler(element) {
  if (typeof element.onclick == "function") {
    return true;
  }

  if (element.href) {
    return true;
  }

  if(window.jQuery)
  {
      if($._data(element, "events") && $._data(element, "events").click)
      return true;
  }

  return false;
}

alert(hasClickHandler(thelink));

http://jsfiddle.net/RXGLY/3/