我有一个自定义选择菜单按钮,我已将html点击事件绑定到关闭它。但事件发生了两次。
$(function () {
$('html').click(function () {
console.log('html');
});
});
任何人都知道为什么/如何阻止它两次射击?
答案 0 :(得分:5)
事件被触发两次的原因是因为您将整个UI放在label
内。
<div ...>
<label for="xmod-form-51183d51afa3d" ... >
<select name="theme" id="xmod-form-51183d51afa3d" ...>
...
</select>
...
</label>
</div>
单击标签也会触发与其相关的表单元素上的单击事件。
如果您移除了label
元素,它会按预期工作:http://jsfiddle.net/GnzBj/5/。
如果你需要label
,请让它尽可能少地包含用户界面,但点击它仍然会触发两个事件。