从关闭弹出窗口阻止jQuery Mobile的用户时,水龙头之外呢(Prevent JQuery M

2019-07-31 07:43发布

我使用jQuery移动1.2.0阿尔法1。

目前,当我打开一个弹出,然后点击它以外的任何位置在屏幕上弹出被关闭。 我在想,如果有任何jQuery Mobile的属性我已经错过了可以设置,防止关闭在外面,点击弹出? (模式弹出)

(对弹出窗口的文档可以找到这里 )

编辑:

我有解决这个的想法,但仍然无法实现它的工作:

当JQM弹出现身那里有涵盖所有UI类 - 弹出屏幕的屏幕的一个div。 我想以某种方式给它一个大的z-index,并从它解除绑定所有点击/点按功能。 这样做并没有解决我的问题,但我想它的方向迈出了一小步。

日Thnx提前。

Answer 1:

这已被添加在Github功能要求。 参见问题在这里 。

由于在此期间这种黑客攻击是为了解除绑定UI的弹出式屏幕上的事件。 我把下面的代码在pageinit。

$("#yourPopupId").on({
    popupbeforeposition: function () {
        $('.ui-popup-screen').off();
    }
});

这是一个沉重的手和quickfix,但它的作品。



Answer 2:

对于未来的搜索,从1.3版本开始,这是现在支持。 只需将添加data-dismissible="false"属性面板股利。



Answer 3:

@ TheGwa的优秀的解决方案建立在,这里是为即将到来的正式功能准备的概括(大概在1.3版本):

  • 添加data-dismissible='false'来,你不想被窃听他们的外可取消所有弹出窗口的标记。

  • 下面的事件处理程序添加到您的应用程序; 它会处理所有弹出窗口:

_

$(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



Answer 4:

在下面的方式添加数据可取消=“假”。

<div data-role="popup" id="popupnotification" data-overlay-theme="b" data-theme="c"  data-position-to="window" style="max-width:600px;">


Answer 5:

@ MJB - >如果您希望能够任意位置单击(如按钮)时,弹出处于活动状态,你可以改变弹出的CSS如下:

.ui-popup-screen{
                    position: relative;
                }

这为我工作。

注:弹出关不上点击了,当你做到这一点-我做了一个解决办法:

$(window).click(function() {    
    if ($( "#myPopup-popup" ).hasClass("ui-popup-active")){
        $( "#myPopup" ).popup( "close" );
    }
});

由JQM产生myPopup-弹出ID - myPopup是我送给弹出的ID。



文章来源: Prevent JQuery Mobile from closing a popup when user taps outside of it