我有一个设置为
的JQuery对话框position: 'center'
现在我运行数据库查询并返回一长串记录,每条记录都有一个“编辑”按钮。如果我向下滚动页面并单击记录的编辑按钮,则jquery弹出打开我的对话框并根据滚动位置居中对话框,但它也会将页面滚动重置回顶部,所以现在对话框不再居中。
所以我的问题是,
当对话框打开时,我可以阻止Jquery重置我的滚动位置吗?
如何在不使用'center'关键字的情况下将位置设置为中心?
答案 0 :(得分:4)
你必须使用一个你没有告诉我们的jQuery插件,因为“center”不是“position”属性的有效值。但是,我假设您将编辑按钮设置为其href值设置为“#”的链接。这就是导致跳跃的原因。要防止这种情况,请在该按钮上的click事件处理程序中返回false:
$('a.edit').click(function () {
// logic goes here
return false;
});
答案 1 :(得分:2)
Tony,你的“按钮”实际上是一个链接,href设置为“#”,还有一个onclick处理程序,可以完成真正的工作。
浏览器将其解释为“转到不存在的锚点”,然后转到页面顶部。
如果你正在使用jQuery事件,那么Restlessdesign是正确的。如果您在标记中定义了onclick处理程序,那么执行以下操作:
<a href="#" onclick="doSomething();return false();" ...
答案 2 :(得分:2)
您可以使用event对象和preventDefault()方法来阻止页面跳到顶部:
$('a.edit').click(function (event) {
event.preventDefault();
// logic goes here
});
答案 3 :(得分:1)
这对我有用。
在我的功能中,
function myedit()
{
....
return false;
}
带链接,
<a href='#' onclick='return myedit();' >edit</a>
答案 4 :(得分:0)
我知道这是一个老帖子,但我刚遇到了这个问题,我的对话框没有居中,所以我想发布给其他可能遇到此问题的人。在我的页面中,我也使用了jQuery Dimensions
插件。
如果我在dimensions
脚本之后加载jQuery UI
脚本,则会破坏对话框定位。在jQuery UI
之前加载,对话框按预期工作。
答案 5 :(得分:0)
这几年后我偶然发现了。我希望这可以帮助其他人寻找解决方案。
源:
http://jqueryui.com/position/#default
$("#result").position({
of: "#wrapper",
my: "center middle",
at: "center middle",
collision: "fit flip"
})//$("#result").position({