jQuery检查元素是否存在onClick事件

8
我发现了一种检查元素是否存在事件的方法。但它不能用于未由jQuery委托的事件:
当我尝试时,
$("a").data("events");

为此。

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

它返回未定义。
有没有办法使用jQuery检查元素上是否存在onClick?
5个回答

20

您可以这样做:

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

8

只需执行:

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

无需使用jQuery。

2
我正在尝试测试JS单元测试的事件监听器是否已设置...如何测试它是否已设置?这不起作用,总是返回true... console.log(document.body.click.length); document.body.addEventListener('click', function () { alert('hi')},false) console.log(document.body.click.length); - Will Hancock

3
if( $('#elementName').click == undefined)  
   { //event handler doesn't exist }
else 
   { //handler exists }

0

我认为以下事项也应该有效

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

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

谢谢


0

毫无疑问这里有一些有效的答案,其中这个是让我开始着手解决问题的好答案。

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

但我为您找到了最佳答案,因为我们都在处理超链接,所以应该查找href属性。

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

我特别喜欢这种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接