0

我需要帮助关闭弹出标签。覆盖 div 是 z-indexed,因此它不会隐藏关闭的 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>
4

1 回答 1

0

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

想必这些都不是真正的问题。

我相信您遇到的问题源于您用于mailClose元素的选择器。具体来说,mailClose 元素的选择器不正确,因为它具有不必要的#mail元素。我不确定 pageID 变量实际上是什么,但由于它不存在于您提供给我们的 HTML 中,因此也需要将其删除才能使选择器起作用。一旦从第一段中删除了那些微不足道的错误,以及 CSS 选择器的错误元素,我相信我的功能可以按预期工作,如jsfiddle 所示。大概 pageID 实际上是一个重要的值,应该适当地添加到选择器中。

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

于 2012-11-16T04:13:48.820 回答