3
$('body').on('mouseover mouseout', '*:not(.printToolBar)', function (e) {
    if (this === e.target) {
        (e.type === 'mouseover' ? setMenuBox(e.target) : removeMenuBox(e.target));
    }
   });

我也尝试过.on方法.off,但无法获得预期的结果。

4

1 回答 1

2

只需从原始绑定中排除不需要的元素:

$('body').on('mouseover mouseout', '*:not(.undesiredelements)', function (e) {
    if (this === e.target) {
        $(e.target).css('border', (e.type === 'mouseover' ? '1px solid blue' : ''));
    }
});

“删除某些元素的绑定”相当于更改触发处理程序的选择器条件。如果您在使用了松散选择器(如 )后需要更改绑定*,您可以简单地取消绑定原始处理程序并重新绑定到所需的元素。

请注意,这里只发生了一个事件处理程序绑定(即到body元素)

于 2012-11-27T08:03:58.847 回答