Javascript 使用$(文档)后jQuery函数不起作用。单击

Javascript 使用$(文档)后jQuery函数不起作用。单击,javascript,jquery,events,document,Javascript,Jquery,Events,Document,我第一次使用此功能后,所有功能都停止工作: $(document).ready(function(){ var popbox = '#popbox'; $(document).click(function(event){ if(!$(event.target).closest(popbox).length && !$(event.target).hasClass('popper')){ if($(popbox).is(":visible"

我第一次使用此功能后,所有功能都停止工作:

$(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);   
  });
});
不再工作了。但在点击弹出框外之前,一切正常。为什么?

编辑:添加信息

当鼠标输入span时,会出现一个div
#popbox
.show()
)调用ajax数据。 如果用户单击该div,则该div将保持不变。 如果用户在其外部单击,我希望将
#popbox
设置为
.hide()
:这是由
$(文档)完成的。单击
函数。
但是当重新进入
#popbox
时,如果用户在调用
$(文档)的外部单击,则不会显示任何内容,也不会调用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();
        }
    }
});

关闭支架 $(文档).ready(函数(){ var popbox='#popbox'; $(文档)。单击(函数(事件){ if(!$(event.target).closest(popbox.length&&!$(event.target.hasClass('popper')){ if($(popbox).is(“:可见”)){ $(popbox.hide(); } });**//此处缺少关闭barc** });
你检查过控制台上的错误了吗?你能在JSFIDLE上重现这个问题吗?它很复杂:这个脚本与AJAX和外部编辑器一起工作。我对我的问题进行了编辑。你能为JSFIDLE提供复杂的示例吗?请检查小提琴 Close the bracket $(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(); } });**//Here closing barc was missing.** });