简体   繁体   English

jQuery UI对话框始终位于右上角

[英]jQuery UI dialog positioning always on top right

I am trying to position dialog on the right of the anchor tag, but with no luck. 我试图将对话框放在锚标签的右侧,但没有运气。

I checked the solutions at jQuery UI dialog positioning and neither seems to work. 我在jQuery UI对话框定位检查了解决方案,似乎都没有用。

function openDialog(row_index) {
   var target = $('#note'+row_index);
    $("#dialog_content_"+row_index).dialog({ width:150 },
                                        { height:80 }).dialog('widget').position({
                                                                      my: 'left',
                                                                      at: 'right',
                                                                      of: target
                                                                     });
}

And this HTML 而这个HTML

<a id="note10" onclick="openDialog('10')" style="cursor:pointer">0010</a>

<div style="display:none" title="Title 10" id="dialog_content_10">Row 10</div>

Adding the top designation to the my and at attributes seems to work - assuming you meant to align to the top and to the right of the anchor (tested in Chrome 11.0.6 and IE9): 将顶部标识添加到my和at属性似乎可行 - 假设您要对齐锚点的顶部和右侧(在Chrome 11.0.6和IE9中测试):

function openDialog(row_index) {
   var target = $('#note'+row_index);
    $("#dialog_content_"+row_index).dialog({ width:150 },
                                        { height:80 }).dialog('widget').position({
                                                                      my: 'left top',
                                                                      at: 'right top',
                                                                      of: target
                                                                     });
}

Here is the jQuery page for testing the different positions. 这是用于测试不同位置的jQuery页面

EDIT: 编辑:

Here is a fiddle showing it aligning on the right... maybe the issue is somewhere else in your CSS or html? 这是一个小提示,显示它在右边对齐...也许问题是你的CSS或HTML中的其他地方? As in the fiddle I've been testing using jQuery 1.5.1, jQuery UI 1.8.9 and the base theme CSS file. 正如在小提琴中我一直在使用jQuery 1.5.1,jQuery UI 1.8.9和基本主题CSS文件进行测试。

OOpps - my brother was using my PC and I submitted the solution as him rather than myself OOpps - 我的兄弟正在使用我的电脑,我提交了解决方案,而不是我自己

The lazy mans way 懒惰的方式

//get reference to the element
var target = $('#note'+row_index);

//add an empty span at the very end of the element [only once]
if($('#note'+row_index+'_getPosition').length==0){ 
  $(target).after('<span id="note'+row_index+'_getPosition"></span>')
  }

// get position of newly inserted span
var position = $('#note'+row_index+'_getPosition').position();

//finally call the dialog using position as below
position : [position.left,position.top]

The lazy mans way 懒惰的方式

//get reference to the element
var target = $('#note'+row_index);

//add an empty span at the very end of the element [only once]
if($('#note'+row_index+'_getPosition').length==0){ 
    $(target).after('<span id="note'+row_index+'_getPosition"></span>')
    }

// get position of newly inserted span
var position = $('#note'+row_index+'_getPosition').position();

//finally call the dialog using position as below
position : [position.left,position.top]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM