30

我目前使用 jTemplates 在客户端上创建一个相当大的表,每一行都有一个按钮,可以打开一个 jQuery UI 对话框。但是,当我向下滚动页面并单击其中一个按钮时,将打开 jQuery 对话框,但滚动位置会丢失,页面会跳回顶部(阻塞和实际对话框显示在屏幕上)。有没有人看到或知道可能导致此问题的原因?

谢谢。

4

4 回答 4

71

您是否使用锚标记来实现弹出对话框的“按钮”?如果是这样,您将希望打开对话框的单击处理程序返回 false,以便不调用锚标记的默认操作。如果您使用的是按钮,您还需要确保它不会提交(通过从处理程序返回 false)并完全刷新页面。

例如,

$('a.closeButton').click( function() {
     $('#dialog').dialog('open');
     return false;
});


<a class='closeButton'>Close</a>
于 2009-07-20T21:08:52.943 回答
13

如果您的按钮与 html 锚标记一起href="#"使用,例如通过替换 hrefhref="javascript:;"或您用来禁用 href 的任何其他方法。发生滚动的原因是href="#"滚动到页面顶部。

于 2013-04-27T06:54:23.320 回答
7

像这样更改您的代码

$('a.closeButton').click( function(e) {
    e.preventDefault();
     $('#dialog').dialog('open');
});
于 2009-08-10T07:09:27.773 回答
-2

你可以试试 :

scrollTo(0, jQuery("body"));
于 2011-09-14T08:16:59.887 回答