我正在绑定到下面这样的文档,
$(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);