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

时间:2018-03-06 06:20:53

标签: jquery jquery-ui-dialog

在我的申请中,我有如下要求: 当用户单击菜单项时,默认情况下会在浏览器的左上角打开一个jquery对话框。如果用户将对话框拖动到窗口上的某个位置并打开另一个菜单项,则该对话框将自动放置在页面的左上角。但是,我想在上一个对话框拖动停止的位置显示新项目单击对话框。为此,我尝试在对话框的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>');

任何帮助解决它是值得赞赏的。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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