Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
133
rated 0 times [  136] [ 3]  / answers: 1 / hits: 109703  / 10 Years ago, tue, august 12, 2014, 12:00:00

I have the following html:



<span onclick=alert('Boem')>
<button id=test1>test</button>
</span>


When I call the following javascript:



$('#test1').trigger('click');


The onclick event is triggered twice, while I expect it to just trigger once. Because JQuery should look up in the DOM tree and find only one onclick.



I do not have control of the span, it is generated in a third party tool. I do have control over the button and his parameters.



You can find a JSFiddle example here:
http://jsfiddle.net/Voga/v4100zke/



Update



I do not know the contents of the onclick listener of the span. This is also generated by the 3rd party tool. I want the click trigger to execute this onclick like it does now, but only once.


More From » jquery

 Answers
68

It is calling twice because button is inside a span and span has onclick=alert('Boem'), hence when you trigger click on button then it shows alert and same click event propagate to span and shows alert once again.



you need to stop default behaviour of button using below code :



$(function(){
$('#test1').click(function(e){e.preventDefault();}).click();
});


Demo


[#69813] Sunday, August 10, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
danalexc

Total Points: 114
Total Questions: 119
Total Answers: 103

Location: Hungary
Member since Wed, Nov 9, 2022
2 Years ago
;