Jquery移动弹出窗口正在重新调整或滚动页面上的错误位置重新打开

时间:2014-02-12 15:24:40

标签: jquery events jquery-mobile mobile popup

在PC浏览器中,有一个问题是弹出窗口会改变其在窗口大小调整上的位置。我用google搜索它,发现JMF有一个错误,从origin / #codeSource改变位置到窗口。

在移动浏览器中,我在页面滚动时遇到同样的问题。弹出窗口再次呈现在错误的位置。

我需要设置某种正确的位置或避免在窗口大小调整和页面滚动时重新打开多时间。

有人可以给我一些建议吗?

1 个答案:

答案 0 :(得分:1)

您需要侦听popupbeforeposition事件并更改该事件遗漏的ui对象。该对象包含三个属性,用于定义弹出窗口的位置,ui.xui.yui.positionTo

后者属性的默认值为window,它会覆盖以前添加到ui.xui.y的任何值。因此,每当popupafterposition触发时,ui.positionTo都应更改为null而不是window

修改:以下代码应包含在pageinit event (2)中。

$(document).on("pageinit", function () {
  $("#popup_ID").on("popupbeforeposition", function (e, ui) {
      ui.x = value; /* (1) */
      ui.y = value; 
      ui.positionTo = null; /* this */
  });
});
  

<强> Demo

(1) value = number

(2) pageinit是一个特殊的jQM事件,相当于.ready(),应该用它代替它。