第一次使用此功能后,所有功能都停止工作:
$(document).ready(function(){
var popbox = '#popbox';
$(document).click(function(event){
if(!$(event.target).closest(popbox).length && !$(event.target).hasClass('popper')){
if($(popbox).is(":visible")){
$(popbox).hide();
}
}
});
例如
$('#ajax').on('click', 'span.popper', function(){
$('#ajax').off('mouseenter mouseleave mousemove', 'span.popper');
})
.on('mouseenter', 'span.popper', popperMouseenter)
.on('mouseleave', 'span.popper', popperMouseleave)
.on('mousemove', 'span.popper', function(e){
popperMousemove(e);
});
});
不再起作用了。但在点击 #popbox 外部之前一切正常。为什么?
编辑:添加信息
当鼠标进入范围时,会出现一个 div #popbox
(.show()
),调用 ajax 数据。
如果用户单击该 div,则该 div 会保留。
如果用户在其外部单击,我希望 #popbox
为 .hide()
:这是由 $(document).click
函数完成的。
但是,当在 #popbox
上重新输入时,如果用户在调用 $(document).click
函数的外部单击,则不会显示任何内容,也不会调用 ajax。否则一切正常。
最佳答案
我猜你的问题是你在函数之外定义了 popbox。 你可以试试这个。它对我有用。
$(document).click(function(e) {
var popbox = $('#popbox');
if (!popbox.is(e.target) && popbox.has(e.target).length === 0) {
if ($(popbox).is(":visible")) {
popbox.hide();
}
}
});
<强> jsFiddle
关于javascript - 使用 $(document).click 后 jQuery 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867815/