jquery - JQM后台点击问题

标签 jquery jquery-mobile background click tap

我已经使用phoneGap(android 和ios)打包了我的JQM 应用程序。它工作正常,但在某些情况下会出现诸如背景单击/点击事件发生之类的问题。 即,如果我单击弹出窗口中的按钮,则单击将传播到背景按钮。 我怎样才能防止这种情况发生? 目前我已经在弹出窗口后面设置了一个覆盖层,并为覆盖层的删除设置了一些延迟(我认为这不是一个好方法),但底部选项卡栏显示了相同的问题,因为覆盖层无法放置在此处。

最佳答案

使用event.stopPropagation()防止事件在 DOM 树中冒泡,从而防止任何父处理程序收到该事件的通知。

SEE EXAMPLE FIDDLE

显示 <div>单击按钮并将其隐藏在<body>上点击事件

编辑:

摘自jquery stopPropagation problem with live method

  • live()处理程序在文档中
  • 事件处理程序按照它们绑定(bind)到任何给定的顺序执行 元素

你需要停止并检查传播,因为我们处于同一水平。 .stopPropagation() 会阻止冒泡继续上升,但这并不重要,它在 DOM 中处于同一级别,因此您需要使用 .isPropagationStopped() 检查它是否已停止。另外,由于处理程序按顺序触发,因此您需要在其他事件处理程序之后绑定(bind)该 document.onclick,否则它将在其他事件处理程序尝试停止传播之前首先执行。

关于jquery - JQM后台点击问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11682283/

相关文章:

jquery - 如何在 jQuery 中创建旋转标签云

javascript - 使用 jQuery Sortable 排序和保存选项卡 + 字段

android - 在 android 上使用 phonegap 在启动画面上加载第一页

javascript - 如何使用 jQuery Mobile 或 Javascript 在 Web 应用程序上进行下拉页面刷新

html - CSS背景图片的位置?

ios - 当应用程序处于后台时调用 URLSession.shared.dataTask

jquery - 隐藏所有内容直到页面加载完成

jquery - 如何用jQuery打开后隐藏相同的内容?

javascript - 没有 hack 或其他路由器的 Backbone.js 和 jQueryMobile 路由

javascript - 如何在安装时仅运行一次扩展代码