jQuery HTML点击事件触发两次

jQuery HTML click event firing twice

本文关键字:两次 HTML 事件 jQuery      更新时间:2023-09-26

我有一个自定义的选择菜单按钮,并且我已经绑定到html点击事件以关闭。但是该事件触发了两次。

http://jsfiddle.net/GnzBj/1/

$(function () {
    $('html').click(function () {
        console.log('html');
    });
});

有人知道为什么/如何防止它发射两次吗?

事件被触发两次的原因是因为您在label中拥有整个UI。

<div  ...>
    <label for="xmod-form-51183d51afa3d" ... >
        <select name="theme" id="xmod-form-51183d51afa3d" ...>
            ...
        </select>
        ...
    </label>
</div>

点击标签还将触发与其相关的表单元素上的点击事件。

如果删除label元素,它将按预期工作:http://jsfiddle.net/GnzBj/5/.

如果你需要label,让它包含尽可能少的UI,但点击它仍然会触发两个事件。