【发布时间】:2021-03-04 15:30:29
【问题描述】:
在这里通过 jQuery 调用点击一个元素实际上调用了 3 次
这只发生在最新版本的 jQuery 中
$("#a").click()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div>
<input type="radio" id="a" name="type" checked="checked" value="guest" onclick="alert('a')" />
<label>A</label>
</div>
<div>
<input type="radio" name="type" value="guest" onclick="alert('b')" />
<label>B</label>
</div>
【问题讨论】:
-
我也在 jQuery 论坛上问过这个问题,如果不是真的问题我会删除它github.com/jquery/jquery.com/issues/216
-
当您使用标准的 jQuery 非侵入式事件处理程序时,它可以正常工作(例如,事件只处理一次),这比内联
onclick更好。但是我无法解释为什么会发生这种行为 -
“这只发生在最新版本的jQuery中”截至昨天最新的是3.6.0
-
更改为
$("#a")[0].click()然后它就消失了(当然没有解释为什么它首先会这样做) -
你也可以做document.getElementById("a").click(),完全不用jQuery
标签: jquery