jQuery点击事件两次触发?

时间:2012-06-29 01:57:50

标签: javascript jquery coffeescript

这是一个相当奇怪的案例,你可以在这里看到代码:

http://jsfiddle.net/zpZtH/2/

3 个答案:

答案 0 :(得分:1)

你不应该使用input元素包装label元素,试试这个:

<label for="average-data" class="section-view-time-checkbox">
    <span class="custom checkbox checked"></span> Average  
</label>
<input type="checkbox" id="average-data" style="display: none;">

http://jsfiddle.net/zpZtH/7/

答案 1 :(得分:0)

http://jsfiddle.net/Cc55g/

您需要在点击处理程序中调用event.preventDefault()。这可以防止在自定义函数运行后执行默认单击操作。第二个警报正在发生,因为正在提交表单。

答案 2 :(得分:0)

这是Javascript中常见的Bug。你可以找到很多关于互联网的文章特别是因为事件被解雇两次。你可以试试这样的东西

 $(document).on('click', '#task-list li', function(e)
 {
       alert('Hellow world');
       e.stopPropagation();
       return false;
 });

这肯定是Javascript问题,因为如果你点击谷歌并搜索事件火两次,你会看到Angular,Jquery和骨干等都在某个地方发射事件两次甚至三次。所以,似乎这背后是javascript。当然,如果您使用Mozilla Developers Network进行搜索,那么您可以看到专家们也这样说过。