3

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

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

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

任何人都知道为什么/如何防止它触发两次?

4

1 回答 1

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,让它包含尽可能少的 UI,但是点击它仍然会触发两个事件。

于 2013-02-11T01:19:33.617 回答