8

I found the way to check if event exists on element. But it's not work on the events which is not delegated by jQuery:

When I try,

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

for this.

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

It returned undefined.

Is there any way to check if onClick exists on elements with jQuery?

5 Answers 5

21

You can do:

if ($('a').attr("onClick") != undefined) {}
Sign up to request clarification or add additional context in comments.

Comments

8

Just do:

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

No need for jQuery.

1 Comment

I'm trying to test if an event listener has been setup as part of a JS Unit test... how how can i test if it has been setup or not?? This isn't working, always returns 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 }

Comments

0

I think the following things should also work

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

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

Thanks

Comments

0

For sure there are some valid answers here, this was a good one that got me going.

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

But I found the best answer for you, as it was for since we are both dealing with hyperlinks, would looking for the href attribute.

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

I particularly liked this approach.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.