【发布时间】:2012-04-19 20:08:37
【问题描述】:
我想在点击链接的位置显示一个弹出窗口 - 我希望重复使用相同的弹出窗口。因此,如果在弹出窗口已经显示时按下另一个链接,我希望它在更改位置并执行新的 slideDown 之前淡出。这意味着使用子函数 - 但位置函数似乎不接受引用的 Jquery 对象。没有错误,只是不显示 div。有什么建议么??谢谢!
代码:
$('.txtTd').click(function() {
var selector=$(this);
if ( $("#popupHelpTxt").is(':visible') ) {
$("#popupHelpTxt").fadeOut(200, function() {
$("#popupHelpTxt").slideDown(200).position({
my: "left top",
at: "left bottom",
of: selector,
offset: "0, 0",
collision: "fit"
});
});
} else {
$("#popupHelpTxt").slideDown(200).position({
my: "left top",
at: "left bottom",
of: this,
offset: "0, 0",
collision: "fit"
});
}
});
如果我在位置参数中将“选择器”替换为其他内容,它确实有效(带有错误定位的弹出窗口)。
提前致谢!
【问题讨论】:
-
你从哪里得到这个接受对象的
.position()方法。我在standard jQuery 中没有看到。 -
我也不熟悉'position',是不是只有JS?试试
var selector = $(this)[0]; -
如果不清楚,抱歉!这是一个 jQuery UI 函数!感谢您提出的解决方案,但它们不起作用。
-
@Kyle 。这是一个 jQuery UI 函数!补充一点:如果我将表达式
var selector=$(this);移动到$("#popupHelpTxt").fadeOut(200, function() {中,它会将 div 定位到“#popupHelpTxt”(即它本身)...
标签: jquery jquery-ui position positioning this