jQuery两次射击,事件冒泡?

Ben*_*Ben 9 jquery

我已经看过人们在事件冒泡和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)

这样做是为每次点击显示两个警报,每个警报具有相同的计数.每次点击都会增加计数.

Ric*_*kir 9

你必须将event变量传递给你的函数,如下所示:

$('.scroll-content-item').click(function (event) {
Run Code Online (Sandbox Code Playgroud)


jyo*_*eph 6

我无法在jsbin上重现这个问题:http://jsbin.com/ixabo4

你有可能两次包含jQuery脚本吗?


Nic*_*ver 5

听起来整个代码执行两次,你的两个完整实例:

jQuery(document).ready(function($) {
  //...
});
Run Code Online (Sandbox Code Playgroud)

...正在执行(每个都有自己的count变量),确保脚本没有在页面中包含两次.要确认这是问题,您可以添加警报(此时您应该看到两次):

jQuery(document).ready(function($) {
  alert("init");
  //...
});
Run Code Online (Sandbox Code Playgroud)