如何不分配绑定事件



我正在绑定到下面这样的文档,

$(document).bind('click',doThis);

但是我有一个文本区域#t1,我不想把绑定事件分配给#t1,我该怎么做?

$(document).bind('click',function (e) {
if (e.target.id!='t1') doThis();
});

您引用的代码将事件挂接到文档上,而不是文档中的所有元素。DOM中的事件从源元素一直到所有中间元素,直到文档,除非停止传播,否则可以在jQuery中使用event.stopPropagation()执行此操作。因此,您可以在文本区域挂接click事件,并使用event.stopPropagation()(或return false)来防止事件上升到文档级别。例如:

$("#t1").click(false);

实例|源

在那里,false命令告诉jQuery事件处理程序应该只返回false(这是一个快捷方式)。在jQuery事件处理程序中,return false;停止传播,并阻止事件可能具有的任何默认操作(在这种情况下,它没有,但例如,如果它是a元素,则默认操作将是跟随链接)。

$('#t1').unbind();

我希望在操作之前解除绑定id将解决您的问题

您可以使用.not()选择器

$(document).not('#t1').bind('click',doThis);

编辑

$("*").not('#t1').bind('click',doThis);

最新更新