jQuery HTML点击事件两次触发

时间:2013-02-11 00:41:49

标签: javascript jquery html jquery-ui

我有一个自定义选择菜单按钮,我已将html点击事件绑定到关闭它。但事件发生了两次。

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

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

任何人都知道为什么/如何阻止它两次射击?

1 个答案:

答案 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,请让它尽可能少地包含用户界面,但点击它仍然会触发两个事件。