我已经看过人们在事件冒泡和jQuery两次触发时遇到的所有问题,但我无法弄清楚这个问题.我一次只点击一个DIV,但是点击处理程序会触发两次.
HTML
<div class="scroll-content-item" data-pid="1773">
<img src="somefile" class="mixdock-img" data-pid="1773"/>
</div>
<div class="scroll-content-item" data-pid="1777">
<img src="someotherfile" class="mixdock-img" data-pid="1777"/>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的...
jQuery(document).ready(function($) {
var count = 0;
// On click, hide the currently displayed post and show the one clicked
$('.scroll-content-item').click(function () {
count += 1;
alert("count = "+count);
event.stopPropagation();
});
});
Run Code Online (Sandbox Code Playgroud)
这样做是为每次点击显示两个警报,每个警报具有相同的计数.每次点击都会增加计数.
你必须将event变量传递给你的函数,如下所示:
$('.scroll-content-item').click(function (event) {
Run Code Online (Sandbox Code Playgroud)
听起来整个代码执行两次,你的两个完整实例:
jQuery(document).ready(function($) {
//...
});
Run Code Online (Sandbox Code Playgroud)
...正在执行(每个都有自己的count变量),确保脚本没有在页面中包含两次.要确认这是问题,您可以添加警报(此时您应该看到两次):
jQuery(document).ready(function($) {
alert("init");
//...
});
Run Code Online (Sandbox Code Playgroud)