2010-06-28 54 views
3

我正在使用position option on JQuery dialog plugin。我想弄清楚如何從這個位置對象中得到「頂」和「左」值。但是,我很難解決這個問題。現在,我已經定義了一個對話框,如下所示:在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> 

當此對話框打開,我要顯示在「警報」窗口中的「頂」和對話框的「左」的位置。但我無法弄清楚。有人能告訴我嗎?謝謝!

回答

6

您可以使用.offset()得到的偏移包含<div>這樣的:

function showHelp() { 
    var o = $("#helpDialog").dialog("open").offset(); 
    alert("Top: " + o.top + " Left : " + o.left); 
}​ 

要獲得總對話框的偏移量,你需要的水平上去它包含在.ui-dialog使用.closest(),像這樣:

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

第二個版本得到了全面對話框的左上角的位置,包括標題b ar/border,第一個獲取對話框中div的左上角,不包括這個。

+0

有沒有辦法將它從JQuery返回的「position」元素中取出?這就是我要拍的。 – user336786 2010-06-28 14:05:13

+0

@ user336786 - 「位置」只是「中心」,所以不要,除非你給出明確的座標。這雖然給了*實際*座標,你能說爲什麼這是不可取的? – 2010-06-28 14:06:05

+0

剛剛發佈的JUI 1.9.0,但仍然沒有上/左的位置。什麼是理由? – 2012-10-11 04:15:40