【问题标题】:How to get jquery dialog position on dragStop event如何在dragStop事件上获取jquery对话框位置
【发布时间】:2018-03-06 14:43:53
【问题描述】:

在我的应用程序中,我有以下要求: 当用户单击菜单项时,默认情况下会在浏览器的左上角打开一个 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>');

感谢任何帮助解决它。

提前致谢。

【问题讨论】:

    标签: jquery jquery-ui-dialog


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。我试过这种方式,但位置现在是一个对象([object Object])。当我尝试查看左右属性(如 position.left 和 position.right)值时,它在警报消息中显示为未定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    相关资源
    最近更新 更多