在JQuery中获得Dialog的最高位置

use*_*786 3 jquery

我正在使用JQuery对话框插件上位置选项.我试图弄清楚如何从这个位置对象中获得"顶部"和"左"值.但是,我很难搞清楚这一点.现在,我有一个对话框,定义如下:

<a href="#" onclick="showHelp();">help</a>
<div id="helpDialog" title="Help">
  Some Help related text
</div>

<script type="text/javascript">
  $(document).ready(function () {
    $("#helpDialog").dialog({
      autoOpen: false,
      modal: true,
      buttons: {
        'OK': function() {
          $(this).dialog('close');
        }
      }
    });
  });

  function showHelp() {
    $("#helpDialog").dialog("open");
    var p = ("#helpDialog").dialog( "option", "position" );
    alert( /* what goes here? */);
  }
</script>
Run Code Online (Sandbox Code Playgroud)

打开此对话框时,我想在"警报"窗口中显示对话框的"顶部"和"左侧"位置.但我无法弄明白.有人能告诉我吗?谢谢!

Nic*_*ver 6

你可以.offset()用来得到包含 的偏移量,<div>如下所示:

function showHelp() {
  var o = $("#helpDialog").dialog("open").offset();
  alert("Top: " + o.top + " Left : " + o.left);
}?
Run Code Online (Sandbox Code Playgroud)

要获得整个对话框的偏移量,您需要升级到.ui-dialog使用中包含的级别.closest(),如下所示:

function showHelp() {
  var o = $("#helpDialog").dialog("open").closest('.ui-dialog').offset();
  alert("Top: " + o.top + " Left : " + o.left);
}?
Run Code Online (Sandbox Code Playgroud)

第二个版本获取整个对话框左上角的位置,包括标题栏/边框,第一个获取对话框内div的左上角,不包括此内容.