这是一个相当奇怪的案例,你可以在这里看到代码:
答案 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;">
答案 1 :(得分:0)
您需要在点击处理程序中调用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进行搜索,那么您可以看到专家们也这样说过。