使用$(document)后jQuery函数不起作用.单击
jQuery functions not working after using $(document).click
第一次使用此函数后,所有函数都停止工作:
$(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外之前,一切都很好。为什么?
编辑:添加信息
当鼠标进入一个跨度时,会出现一个调用ajax数据的div #popbox
(.show()
)。如果用户点击这个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
关闭括号$(document).ready(function){var popbox='#popbox';$(文档).click(函数(事件){if(!$(event.target)最接近(popbox).length&&$(event.target).hasClass('popper')){if($(popbox).is(":可见")){$(popbox).hide();}})**//这里的结束栏不见了**});
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 如何从jquery函数返回变量
- 如何将具有文本类型值的var放入jQuery函数中
- Jquery函数在错误的时间提交
- 锚链接无法使用.slideUp jquery函数
- 重新分解jQuery函数
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何向这个javascript/jquery函数添加参数
- 添加类来触发jquery函数
- 更改智能表中的页面将停止JQuery函数的工作
- 使用每500ms运行一次的jquery函数是个好主意吗
- jQuery函数不能只在一个页面上工作
- 如何将jquery函数链接到vanilla选择器
- 仅在小型设备上调用jQuery函数
- 如何将jquery函数仅应用于大屏幕
- 奇怪的jquery函数行为
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 在jquery函数内部设置来自jquery函数的var;t运行
- 从Jquery函数中获取一个变量