0

我正在尝试将单击事件绑定到页面上的所有元素,但具有 id 的元素内的元素除外

    $('body :not(#dialog-form *)').off('click').on('click', function (e)
    {
     //code
    });

上面提到的代码将点击事件绑定到'dialog-form'中的那些元素。

4

1 回答 1

1

您的代码正在运行,但您误解了会发生什么。您会看到,除了某些元素之外,您绑定了对所有内容的单击,但#dialog-form *body其中意味着即使#dialog-form *没有事件,单击它也会触发单击body(其中包含事件)。您需要防止冒泡:

$('body').off('click').on('click', function (e){
    //code
});

$('#dialog-form').on('click', function(e){
    e.stopPropagation();
})

小提琴:http: //jsfiddle.net/d4gLd/

于 2013-08-26T23:01:33.447 回答