2014-01-29 81 views
2

我需要顯示我點擊的對話框。如果我點擊下面的鏈接,對話框必須顯示在下面我點擊鏈接的地方,對話框必須出現在相同的位置,但在我的代碼對話框顯示在頁面的頂部中心,即使我們點擊鏈接。對話框定位

jQuery的

$(".showTemplateDialog").dialog('option', 'position', ['center',e.pageY]); 

請幫我在鼠標的位置得到對話框。

我試過與頂部和左側的位置也。但我沒有得到答案

回答

0

嘗試這樣的事情

$(".showTemplateDialog").dialog('option', 'position', [$(this).offset.left,$(this).offset.top]);

看看對話框定位API更多的信息在這裏:http://api.jqueryui.com/dialog/#option-position

UPDATE:現場演示:http://jsfiddle.net/7b2RF/

+0

我使用此代碼但對話框僅顯示在頂部。我檢查與警報框之前成功功能警報框使用顯示我點擊的位置,但在成功功能使用的警報框顯示在頂部 – Bhargavi

+0

檢查在更新上面的現場演示,在這裏我已經清理了相同的代碼一點點在小提琴中,並且使用類來代替ID,因此您可以將它用於無限數量的同一類的元素,在這種情況下,我使用了「divs」類。 希望這有助於。 –

+0

在AJAX我使用的成功:函數(objRequest) \t \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t提醒(左); \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t $( 'showTemplateDialog。')的HTML($修剪(objRequest)。)。 \t \t \t \t \t \t \t \t \t \t $( 'showTemplateDialog。')對話框( 「開放」)。 \t \t \t \t \t \t \t \t \t $( 「showTemplateDialog。」)對話框({ \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t位置:[左+ 15,頂+ 20 ] \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t}); \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t},成功裏面的警報也顯示在頂部 – Bhargavi

1

也許,這可能讓你的想法如何做到這一點:

HTML:

<div id="one" class="divs"></div> 
<div id="two" class="divs"></div> 

CSS:

.divs { 
    float: left; 
    height: 48px; 
    width: 80px; 
    border: 1px solid #55f; 
} 

JS:

$(document).ready(function(){ 
    var $div = $('#two'); 
    var left = $div.offset().left; 
    var top= $div.offset().top; 
    $('<p>Some dialog</p>').dialog({position: [left + 20, top + 20]}); 
}); 

這是鏈接到demo

jQuery offset()返回相對於文檔的元素位置,而position()返回相對於偏移父項。