我使用JQuery的live():
将click事件添加到特定元素 $('#foo').live('click');
稍后,我将bind()添加到document:
$(document).bind('click');
点击文档后,我取消绑定文档
$(document).unbind('click');
这导致了问题:我的#foo元素不再有click事件,因为它是文档的子元素。如何删除文档的单击,保持#foo元素不变?
答案 0 :(得分:5)
您可以使用事件命名空间
$(document).bind('click.documentEvent');
$(document).unbind('click.documentEvent');
答案 1 :(得分:0)
这是一种方法。您可以只有两个单击事件,并在单击文档时检查单击事件的目标,并验证它不是链接。我确信有更好的方法可以做到这一点,但它有效:
var clicked = "I am clicked. Click outside!";
var unclicked = "Click me now!";
$('#foo').click(function() {
if($(this).html() == unclicked) {
$(this).html(clicked);
}
});
$(document).click(function(e) {
if(e.target != $('#foo')[0] && $('#foo').html() == clicked) {
$('#foo').html(unclicked);
}
});