0

我有一个页面,上面有一个带有打开对话框的超链接的表格。这些页面很长,每一行都有一个链接,可以打开一个加载外部页面的对话框。

如果我在滚动之前单击任何链接,则对话框会在屏幕中间打开。如果我向下滚动页面,然后单击链接,则对话框会在页面中间打开,但浏览器会自动滚动到页面顶部。因此,根据您在页面上的位置,您根本看不到对话框。

我试图将对话框的位置设置为顶部,如下所示$('.selector').dialog({ position: 'top' });:我也尝试通过将位置设置为绝对来做到这一点,如下所示:.ui-widget { position: absolute; }

这些都没有奏效。我似乎无法让它工作。我可以在页面顶部或中间打开对话框,但我需要页面不要滚动离开对话框。

这是正在发生的事情的一个小例子 -对话测试

我已经在 Firefox、chrome、safari 和 IE 中对此进行了测试。他们都做几乎相同的事情。

对此的任何帮助都会很棒。

谢谢

4

2 回答 2

3

href锚点的 是 ID 选择器 ( #<id>) 时,浏览器会导航到具有该 ID 的元素。如果没有指定 ID,浏览器会转到页面顶部。

通过在处理程序中返回 false 来取消锚点的默认行为:

$(".vd").click(function(){
    $("#detailWin").dialog("open");
    return false;
});

通常避免这种情况的另一种解决方案是hrefjavascript:void(0)

<a href='javascript:void(0)'>Open dialog</a>
于 2012-04-04T15:37:15.350 回答
0

尝试将 href='#' 更改为 href=' ' 。锚点会将您带到页面的开头。

于 2012-04-04T15:38:55.310 回答