我正在尝试将对话框放在锚标签的右侧,但没有运气。
我在jQuery UI dialog positioning查看了解决方案,似乎都没有效果。
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
});
}
这个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>
答案 0 :(得分:2)
在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
});
}
以下是用于测试不同位置的jQuery page。
编辑:
这是a fiddle显示它在右侧对齐...也许问题是在CSS或html中的其他地方?就像在小提琴中我一直在使用jQuery 1.5.1,jQuery UI 1.8.9和基本主题CSS文件进行测试。
答案 1 :(得分:1)
OOpps - 我的兄弟正在使用我的电脑,我提交了解决方案,而不是我自己
懒惰的方式
//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]
答案 2 :(得分:0)
懒惰的方式
//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]