【发布时间】:2023-04-08 17:13:01
【问题描述】:
我有一个标签和一些在点击它时运行的功能。
但是当点击事件发生时,双击事件就完成了,然后我的函数运行2次...
你可以看一个简单的例子here
HTML:
<label>
<input type="checkbox" id="checkbox"> Click here
</label>
<input type="text" id="test" value="0"/> clicks
JavaScript:
$(document).ready(function(){
$('label').click(function(event) {
$('#test').val(parseInt($('#test').val())+1);
event.preventdefault();
});
});
- 当我们点击复选框时,点击计数器为 +1 >> Ok
- 当我们点击标签时,点击计数器为 +2 >> Nok
如何解决这个问题?
编辑
preventdefault() 到 preventDefault() 修复了双击,但现在不再选中复选框...
【问题讨论】:
-
preventDefault中有一个大写字母"D"。 -
为什么要将点击处理程序绑定到标签?以及为什么要在标签内附上一个复选框?
-
@Vega:将复选框放在标签内,使标签在不需要
for属性的情况下切换复选框。 -
检查复选框值更改事件是否有任何代码。
-
@Vega 将输入包含在标签内是标准行为。规范对此表示赞同。
标签: javascript jquery click label