无法关闭弹出窗口js框

时间:2012-11-16 03:54:42

标签: javascript jquery tabs popup

关闭弹出式标签需要帮助。 overlay div是z-indexed,因此它不会隐藏close div。这是我的代码:

<div id='mail'>                 
  <div id="popup-overlay"></div>
   <div class="close-popup"">
  <a>X</a>
   </div>
</div>

<script>
    var mail = $('#mail');
    var overlay = $('#popup-overlay.' + pageID);
    var mailClose = $('#mail.' + pageID + ' .close-popup');

    mailClose.on('click touchstart', function(event){
    mail.removeAttr('style');
    mail.css('display', 'none');
    overlay.css('display', 'none');
  });

  mailClose.bind('mouseover', function(event){
    mailClose.css('cursor', 'pointer');
  });

  mailClose.on('blur', function(event){
      this.blur();
     });
  }
</script>

1 个答案:

答案 0 :(得分:0)

好的,所以你在代码片段中给我们的来源有一些问题,但这可能只是因为你复制粘贴了你的总代码的一个子部分。这些问题是:close-popup的类定义中出现意外的“字符”;变量pageID未定义;最后在脚本末尾有一个额外的大括号。

据推测,这些都不是实际问题。

我认为您遇到的问题源于您用于mailClose元素的选择器。具体来说,mailClose元素的选择器不正确,因为它具有不必要的#mail元素。我不确定pageID变量实际上是什么,但是因为它没有出现在你给我们的HTML中,所以也需要删除它以使选择器起作用。一旦从第一段删除了那些琐碎的错误,以及CSS选择器的错误元素,我相信我的功能正如预期的那样工作,如this jsfiddle中所示。据推测,pageID实际上是一个重要的值,应该适当地添加到选择器中。

如果您想再看一个更全面的示例,请随意编辑源代码并评论此答案。希望这会有所帮助,