Jquery mobile 关闭jQuery Mobile新弹出窗口会导致页面无效刷新

Jquery mobile 关闭jQuery Mobile新弹出窗口会导致页面无效刷新,jquery-mobile,Jquery Mobile,我在1.2.0 alpha版本中使用新的jqm弹出窗口,我的问题是,当使用esc键关闭弹出窗口或单击屏幕时,我调用弹出窗口的页面被无效刷新。。。此刷新仅在我第一次关闭它时发生。如果我重新打开并再次关闭弹出窗口,页面将不会刷新 似乎出于某种原因,jqm的历史麦加主义被搞砸了 它似乎不是一个内置功能,因为jqm演示页面中的任何弹出窗口都不会出现这种情况 你知道如何解决这个问题吗 谢谢 Etienne根据我的评论,这里有一个临时解决问题的方法。只需适当地绑定到navigate事件并调用preventD

我在1.2.0 alpha版本中使用新的jqm弹出窗口,我的问题是,当使用esc键关闭弹出窗口或单击屏幕时,我调用弹出窗口的页面被无效刷新。。。此刷新仅在我第一次关闭它时发生。如果我重新打开并再次关闭弹出窗口,页面将不会刷新

似乎出于某种原因,jqm的历史麦加主义被搞砸了

它似乎不是一个内置功能,因为jqm演示页面中的任何弹出窗口都不会出现这种情况

你知道如何解决这个问题吗

谢谢


Etienne

根据我的评论,这里有一个临时解决问题的方法。只需适当地绑定到navigate事件并调用preventDefault即可。这将防止重新加载页面。我最终绑定到popupafterclose,只有当它被打开时:

  $('.my-popup-selector').on('popupafteropen', function () {
      $(this).one('popupafterclose', function () {
          $(window).one('navigate.popup', function (e) {
              e.preventDefault();
          });
      });
  });

我有一个类似的问题,因为我不需要在我的案例中使用历史,我解决了它,如下所示:

$.mobile.popup.prototype.options.history = false;

当jQuery Mobile 1.4.5在IE11上遇到类似问题时发现此帖子

我发现在关闭弹出窗口时,可以通过在HTML中声明带有data history=“false”属性的弹出窗口来防止“重新加载”

例:

...

我有一个类似的问题,我用
历史记录:false解决了它:

$("#selector").popup({ transition: 'slidedown', history: false, overlay: true });
$("#selector").popup("open");

data history=“false”
添加到popup div。因此,当popup关闭时,它不会重定向到另一个页面。

当当前url与导航堆栈不同步时,我遇到过类似的问题。您会注意到_handleHashChange事件触发“导航”事件($.mobile.pageContainer.trigger(navEvent);),并且计算isDefaultPrevented为true的预期侦听器不会被触发,因为它只绑定了一次。根据我本周的时间,我可能会提交拉取请求。我会随时通知你。我最终在[data role=“popup”]选择器的popupafteropen事件上绑定(实时)了你的补丁,它解决了我所有应用程序弹出窗口上的问题。谢谢!非常感谢。这解决了我的问题!我不知道弹出窗口处理历史记录。