对话框在打开后直接关闭

时间:2013-07-20 12:04:03

标签: jquery-mobile

我希望在应用未处于独立模式时显示对话框。我有这段代码:

$(document).on("pageinit", "#home", function (e) {
  console.log('pageinit');
  if (!window.navigator.standalone && (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
    $.mobile.changePage('/mobile/install', {
        role: 'dialog',
        showLoadMsg: true,
        changeHash: false
    });
   }
});

问题是对话框出现但直接关闭后会返回主页。

主页的pageshow事件发生了两次。

如何防止这种行为?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您需要使用setTimeout设置延迟。

$(document).on("pageinit", "#home", function (e) {
 if (!window.navigator.standalone && (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
  setTimeout(function () {
    $.mobile.changePage('/mobile/install', {
      role: 'dialog',
      showLoadMsg: true,
      changeHash: false
    });
  }, 100);
 }
});