Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内容更改后重新定位jQuery移动弹出窗口_Jquery_Mobile_Resize_Popup_Positioning - Fatal编程技术网

内容更改后重新定位jQuery移动弹出窗口

内容更改后重新定位jQuery移动弹出窗口,jquery,mobile,resize,popup,positioning,Jquery,Mobile,Resize,Popup,Positioning,我正在使用jQuery Mobile(1.3.1)显示一个弹出窗口(屏幕居中)。根据用户的操作,一些内容会通过AJAX插入弹出窗口。这很好,但有一个问题: 一旦内容被注入弹出窗口,其大小会改变,但位置不会更新。 一旦调整窗口大小,弹出位置就会刷新,但到目前为止,我还没有找到手动触发此操作的方法 弹出窗口的声明: <div id="MoveFolderPopup" data-role="popup" data-position-to="window" style="min-width: 20

我正在使用jQuery Mobile(1.3.1)显示一个弹出窗口(屏幕居中)。根据用户的操作,一些内容会通过AJAX插入弹出窗口。这很好,但有一个问题: 一旦内容被注入弹出窗口,其大小会改变,但位置不会更新。 一旦调整窗口大小,弹出位置就会刷新,但到目前为止,我还没有找到手动触发此操作的方法

弹出窗口的声明:

<div id="MoveFolderPopup" data-role="popup" data-position-to="window" style="min-width: 20em">

我对JavaScript没有太多的经验,只是对这个问题没有更多的想法;)谁能帮帮我吗?谢谢

这对我来说部分有效:

$('#MoveFolderPopup').resize();
我确实发现,当立即触发它时,它并没有很好地工作,所以我使用了
setTimeout
。虽然看起来不太漂亮,但我正在寻找更好的解决方案

$("#MoveFolderPopup").popup("reposition", {positionTo: 'origin'});


在这种情况下,两者都可以,因为
data position to=“window”

我遇到了类似的问题,而这里提供的解决方案在我的情况下都不起作用。解决我(也许还有你)问题的简单解决方案:

  • 关闭弹出窗口
  • 在弹出窗口中添加/替换内容
  • 打开弹出窗口(如果关闭需要一段时间,可能会超时)
  • 这是如此之快,用户不会意识到弹出窗口已关闭并再次打开。弹出窗口大小是根据新内容而不是以前的内容设置的

    我还用Chrome、Firefox和Safari在移动设备上进行了测试

    如果您有/想要一个带有更改内容的全屏弹出窗口,您可以将此代码放入.ready部分:

    //定位全屏弹出窗口
    $(“#yourPopupBoxId”).popup({
    beforeposition:函数(){
    $(this.css)({
    宽度:window.innerWidth,
    高度:window.innerHeight,
    边界:“无”,
    //取决于内容,否则忽略
    显示:“内联表”
    });
    },
    x:0,,
    y:0
    
    });谢谢,第二个语句完成了任务:)
    $("#MoveFolderPopup").popup("reposition", {positionTo: 'origin'});
    
    $("#MoveFolderPopup").popup("reposition", {positionTo: 'window'});