首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当用户在弹出窗口之外点击时,阻止JQuery移动设备关闭弹出窗口

当用户在弹出窗口之外点击时,阻止JQuery移动设备关闭弹出窗口
EN

Stack Overflow用户
提问于 2012-09-03 18:37:00
回答 5查看 15.2K关注 0票数 17

我使用的是JQuery Mobile1.2.0 Alpha1。

目前,当我打开弹出窗口并在屏幕上的任何位置点击弹出窗口时,弹出窗口都会被关闭。我想知道是否有任何我错过的JQuery手机属性,可以设置和防止关闭弹出窗口时,外部点击?(模式弹出窗口)

(弹出窗口的文档可以在here中找到)

编辑:

我有一个解决这个问题的想法,但仍然不能实现它:

当一个JQM弹出窗口出现时,有一个div,它用ui- popup -screen类覆盖了整个屏幕。我想以某种方式给它一个大的z索引,并取消绑定所有的点击/点击函数。这样做并不能解决我的问题,但我想这是朝着这个方向迈出的一小步。

要提前做好准备。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-14 21:42:24

这已经被添加为Github上的一个功能请求。请参见issue here

在此期间的一个技巧是在ui-popup-screen上解除绑定事件。我会把下面的代码放在pageinit中。

代码语言:javascript
复制
$("#yourPopupId").on({
    popupbeforeposition: function () {
        $('.ui-popup-screen').off();
    }
});

这是一个笨手笨脚的快速修复,但它是有效的。

票数 25
EN

Stack Overflow用户

发布于 2013-09-25 00:01:12

对于未来的搜索者,从1.3开始,现在支持这一点。只需将data-dismissible="false"属性添加到面板div。

票数 19
EN

Stack Overflow用户

发布于 2013-01-19 10:33:37

在@TheGwa的优秀解决方案的基础上,这里有一个概括,为即将到来的官方特性(可能是1.3版)做准备:

  • 通过点击弹出窗口外部,将data-dismissible='false'添加到所有弹出窗口的标记中。
  • 将以下事件处理程序添加到您的应用程序中;它将处理所有弹出窗口:

_

代码语言:javascript
复制
$(window).on('popupbeforeposition', 'div:jqmData(role="popup")', function() {
        var notDismissible = $(this).jqmData('dismissible') === false;
        if (notDismissible) {
          $('.ui-popup-screen').off();
        }
});

-

正式支持该功能后,只需删除事件处理程序即可。

请注意,遗憾的是,官方文档(从1.2中开始)表明该特性已经可用,但还没有-请参阅http://jquerymobile.com/test/docs/pages/popup/options.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12246181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档