javascript – 为什么onClick事件触发两次?

我有以下html:

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

当我调用以下javascript:

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

onclick事件被触发两次,而我希望它只是触发一次.因为JQuery应该在DOM树中看起来只有一个onclick.

我无法控制跨度,它是在第三方工具中生成的.我可以控制按钮和他的参数.

你可以在这里找到一个JSFiddle示例:
http://jsfiddle.net/Voga/v4100zke/

更新

我不知道跨度的onclick侦听器的内容.这也是由第三方工具生成的.我想要点击触发器像现在这样执行这个onclick,但只有一次.

最佳答案
它正在调用两次,因为按钮在一个跨度内,跨度有onclick =“alert(‘Boem’)”,因此当您触发点击按钮时,它显示警报和相同的点击事件传播到跨度并再次显示警报.

您需要使用以下代码停止按钮的默认行为:

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

Demo

转载注明原文:javascript – 为什么onClick事件触发两次? - 代码日志