【发布时间】:2015-11-23 18:37:39
【问题描述】:
我第一次使用这个功能后所有功能都停止工作了:
$(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 外部之前一切正常。为什么?
编辑:添加信息
当鼠标进入一个 span 时,会出现一个 div #popbox (.show()) 调用 ajax 数据。
如果用户单击它,则此 div 保持不变。
如果用户在其外部单击,我希望 #popbox 到 .hide():这是由 $(document).click 函数完成的。
但是当重新进入#popbox 时,如果用户在调用$(document).click 函数之外单击,则不会显示任何内容,也不会调用ajax。否则一切正常。
【问题讨论】:
-
您检查控制台是否有错误?
-
你能在 JSFiddle 重现这个问题吗?
-
有点复杂:此脚本可与 AJAX 和外部编辑器一起使用。我对我的问题进行了编辑。
-
你能给jsfiddle提供复杂的样本吗?
标签: javascript jquery events document