如何在 dragStop 事件中获取 jquery 对话框位置

How to get jquery dialog position on dragStop event

在我的应用程序中,我有如下要求: 当用户单击菜单项时,默认情况下会在浏览器的左上角打开一个 jquery 对话框。如果用户将对话框拖到 window 上的某个位置并打开另一个菜单项,该对话框会自动放置在页面的左上角。但是,我想在先前对话框拖动停止的位置显示新项目单击对话框。为此,我尝试在对话框的 dragstop 事件中保存左侧和顶部位置值,但是,它在对话框拖动后不显示顶部和左侧值,而是显示默认的左上角值。 我的代码:

$("#modalDiv").dialog({
  position: {
    my: "left top",
    at: "left top+122",
    of: "body"
  },
  beforeClose: function(event, ui) {
    alert('Firing close- top:' + $(this).position().top + "  left:" + $(this).position().left);
  },
  dragStop: function(event, ui) {
    //This alert message should show latest top left postion values of jquery dialog box it is showing default top left values even after drag event finished?

    //alert('Firing close- top:' + $(this).position().top + "  left:" + $(this).position().left);
  }
}).dialog("open").parent().appendTo(jQuery('form:first')).find('.ui-dialog-title').html('<span>' + titleStr + '</span>');

感谢任何解决问题的帮助。

提前致谢。

当您创建对话框时,jQuery 在内部使用 div 元素表示它。您可以观察 div 的 属性 aria-describedby,因为它包含与对话框相同的 ID,并获取其位置:

$("[aria-describedby= modalDiv]").position();