切换弹出窗口并在外部单击时切换它

2024-01-17

我有一个问题,

我正在尝试制作一个弹出窗口切换toggleClass。不过,我还制定了一条从 StackOverflow 获得的规则,当在外部单击时,弹出窗口会消失。

但是,当我单击登录按钮时,它会出现,但我无法再使用登录按钮使其消失。但我已经定下了规则:

$('a#inloggen').click(function() {
    $('.inloggen').toggleClass('active');
});

不过,他似乎忽略了这一点……

也许你们能发现我看不到的问题是什么。

HTML

<div id="usermenu">
<div class="inloggen"><h2 class=" swe-editable" _sweid="17" _sweclass="nl swe swe-snippet swe-h2 ">
Inloggen</h2>

this is the popup!
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Wachtwoord vergeten? <a href="#">Klik hier</a>.</p></div>

</div>  
<ul class="menu">
  <li class="first"><a href="#" id="inloggen">login</a></li>
</ul>

jQuery

$('a#inloggen').click(function() {
    $('.inloggen').toggleClass('active');
  });

  $(document).mouseup(function (e)
  {
      var container = $('.inloggen');

      if (container.has(e.target).length === 0)
      {
          container.removeClass('active');
      }

  });

  if ($('#project_user_loginform-name').hasClass('error') || $('#project_user_loginform-password').hasClass('error')) {
    $('.inloggen').addClass('active');
  };


What have i tried?
I tried to add a exception to the function that makes the div dissapear when clicked outside the div but this just seems to reverse the progress.
var container2 = $('a#inloggen');
if (container.has(e.target).length === 0 && container2.has(e.target).length !== 0)

UPDATE :
我进一步进行了修改,将 mouseup 更改为 mousedown,并更改了函数的顺序。这让我更接近解决方案,但它还不能完美工作。

$(document).mousedown(function (e)
  {
      var container = $('.inloggen');

      if (container.has(e.target).length === 0)
      {
          container.removeClass('active');
      }

  });

  $('a#inloggen').click(function() {
    $('.inloggen').toggleClass('active');
  });

Example
http://codepen.io/anon/pen/ghpwr http://codepen.io/anon/pen/ghpwr


我相信完成您想要做的事情的一种更简单的方法是创建一个可以切换弹出窗口的空白 div。基本上将其隐藏起来,就像弹出窗口一样,当单击登录链接时,将遮罩 div<div class="mask"></div>显示,但在z-index:-1;。这样,页面上的链接仍被识别为链接,但 div 仍可单击。

这是代码的新版本,并实施了建议的更改:link http://codepen.io/anon/pen/ycEpo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

切换弹出窗口并在外部单击时切换它 的相关文章

随机推荐

  • 无法使用 kubectl 创建文件

    我最近开始从事微服务工作 我正在构建我的 docker 映像并希望将其部署在 kubernetes 上 创建 pod yaml 文件时 我开始收到以下错误 命令 kubectl create f podservice yaml Error
  • 跨区域调用 AWS lambda

    我有三个 lambda 函数 boss worker1 worker2 当使用 boto3 client invoke 时 我可以从老板那里调用worker1 这两个是在同一个地区的 worker2 位于单独的区域 当尝试从 boss 调用
  • 清除任务中的所有活动?

    我有一个启动屏幕活动 然后是一个登录活动 我的历史堆栈如下所示 SplashActivity LoginActivity 当用户通过 LoginActivity 成功登录时 我想启动 WelcomeActivity 但清除整个堆栈 Spla
  • 如何避免页面对象中的复合类名称错误?

    当我尝试使用有空格的类名时class country name 在页面对象中 我得到 Compound class names not permitted Selenium WebDriver Error UnknownError 如何使用
  • React Router 传递参数。如何?

    具有以下 React Router const AppRoutes
  • Autofac 已下载,我可以访问构建器方法,但不能访问 RegisterControllers 方法

    下面的代码是我到目前为止所拥有的 RegisterControllers 方法不存在 尽管我可以在 autofac 文档以及其他堆栈溢出问题上看到它 Visual Studio 一直说 ContainerBuilder 不包含 Regist
  • 使用 TypeFamilies 派生实例

    我有一个类型类Foo具有关联类型 LANGUAGE TypeFamilies class Foo a where type Bar a foo a gt Bar a 现在我想定义一个包含关联类型之一的数据类型 并派生一个Show它的实例 d
  • HTML与大虾

    我尝试使用 prawn 生成日志条目的 PDF 然后条目存储在 bbcode b bold b 等 中并转换为 html 显示 大虾有什么办法可以显示html吗 这听起来像虾格式 http github com sandal prawn f
  • WordPress 页面重定向到主页

    我有一个 WordPress 网站http www wjewel com http www wjewel com 网站的所有页面都被重定向到主页 没有用于重定向的 htaccess 文件或 web config 文件 有人可以指导我这个问题
  • 如何重复更新android TextView来模拟动画

    我希望一旦按下菜单中的按钮 TextView 中的文本就会不断变化 这是我的菜单的 onOptionsItemSelected public boolean onOptionsItemSelected MenuItem item switc
  • pip3安装pyautogui,错误代码1

    我无法安装 pyautogui 我已经尝试了一切 例如 pip3 install pillow 也按照网站上的步骤操作pyautogui 网站 http pyautogui readthedocs io en latest install
  • 配置 Redis 以与 AppHarbor 良好配合

    我使用 AppHarbor 作为 CI 环境来验证我的提交 我在 AppHarbor 中收到错误 因为 Redis 无法写入磁盘 Error RedisResponseException MISCONF Redis is configure
  • Adobe AIR 键盘挂钩

    我正在尝试向我的 AIR 应用程序添加一项功能 即使应用程序最小化 该功能也可以侦听 可配置的 全局键盘事件 例如 CTRL ALT SHIFT F12 抓取屏幕截图 我找不到任何方法来注册键盘挂钩 并且监听键盘事件仅在应用程序具有焦点时捕
  • 如何防止 iframe 页面被插入 IE 浏览历史记录中

    我在将 iframe 页面插入 IE9 的浏览历史记录时遇到很多麻烦 这很痛苦 因为您必须多次单击后退才能到达上一页 这是什么原因呢 是浏览器的bug还是页面的bug 编辑 我意识到我正在使用 javascript 来更新页面上所有 ifr
  • C++ Map 使用非默认构造函数初始化对象

    在 C 中 假设我有一个无序映射定义如下 unordered map
  • Process.Start() 明显慢于在控制台中执行

    我使用以下命令执行 exe 时遇到性能问题Process Start NET 的执行时间大约是控制台的 5 倍 什么会导致这种情况 这是一个测试程序 public static void Main string argv for int i
  • 如何将事件对象传递给命名函数

    我有一个用于单击事件的事件处理程序 事件处理程序是一个命名函数而不是匿名函数 如何将事件对象传递给这个命名函数 usual example sel click function ev do stuff which involves the
  • notifyDataSetChanged 不会刷新 RecyclerView

    我有一个奇怪的问题 我切换到RecyclerView from ListView我无法刷新或通知我的更改ListView 我尝试打电话Item this notifyDataSetChanged 以及其他刷新方法View但它不起作用 反而R
  • setImeOptions:为什么软键盘上不显示“完成”按钮?

    我尝试使用以下命令在软键盘上设置 完成 按钮input setImeOptions EditorInfo IME ACTION DONE 但 完成 按钮根本不显示在软键盘上 请问有什么建议吗 public void modif int po
  • 切换弹出窗口并在外部单击时切换它

    我有一个问题 我正在尝试制作一个弹出窗口切换toggleClass 不过 我还制定了一条从 StackOverflow 获得的规则 当在外部单击时 弹出窗口会消失 但是 当我单击登录按钮时 它会出现 但我无法再使用登录按钮使其消失 但我已经