Events PopupPreFoResposition事件后为什么更改弹出对话框的顶部值

Events PopupPreFoResposition事件后为什么更改弹出对话框的顶部值,events,popup,Events,Popup,我希望我的弹出对话框每次都显示在屏幕顶部,因此,我在JS中添加如下逻辑 $( "#dress_length_size_chart_popup" ).on({ popupbeforeposition: function () { var f = document.getElementById('dress_length_size_chart_popup-popup'); f.style.top = ** +'px'; } }); 不幸的是,它不起作

我希望我的弹出对话框每次都显示在屏幕顶部,因此,我在JS中添加如下逻辑

$( "#dress_length_size_chart_popup" ).on({
    popupbeforeposition: function () {
        var f = document.getElementById('dress_length_size_chart_popup-popup');
        f.style.top = ** +'px';
    }
});
不幸的是,它不起作用。虽然top是在
popubeforeoposition
的回调函数中设置的,但该值将再次更改,并且我的设置将被覆盖。(这里发生了什么事?)

如果我将逻辑移到
popupafteropen
的其他回调函数。它会起作用的

但是,当我滚动页面时,只会调用
popubeforeposition
,而不会调用
popupeafteropen
。因此,顶部设置仍然丢失

所以,问题是

  • popubeforeoposition
    更改最大值后发生了什么

  • 我怎样才能赶上这次活动,使我的顶级设置发挥作用


  • 谢谢

    我创建了一个示例来复制您的问题,但对我来说,每次打开popupYes时都会调用
    popupafteropen
    ,每次打开弹出窗口时都会调用
    popupafteropen
    。但是,当您向上/向下滚动页面时,弹出窗口不会关闭。它只是再次渲染,在这种情况下,
    popupafteropen
    将不会被调用。因此,我想逻辑应该放在事件PopupBeforLocation中。尽管我设置了x,y值,但仍然不能工作<代码>ui.x=0;ui.y=0。你知道attr“open”选项的x,y是什么意思吗?从手册中,它们是显示弹出窗口的坐标。但是,它们是否与页面、窗口或某些选择器相关?
    x
    y
    与当前视图相关