我目前使用 jTemplates 在客户端上创建一个相当大的表,每一行都有一个按钮,可以打开一个 jQuery UI 对话框。但是,当我向下滚动页面并单击其中一个按钮时,将打开 jQuery 对话框,但滚动位置会丢失,页面会跳回顶部(阻塞和实际对话框显示在屏幕上)。有没有人看到或知道可能导致此问题的原因?
谢谢。
您是否使用锚标记来实现弹出对话框的“按钮”?如果是这样,您将希望打开对话框的单击处理程序返回 false,以便不调用锚标记的默认操作。如果您使用的是按钮,您还需要确保它不会提交(通过从处理程序返回 false)并完全刷新页面。
例如,
$('a.closeButton').click( function() {
$('#dialog').dialog('open');
return false;
});
<a class='closeButton'>Close</a>
如果您的按钮与 html 锚标记一起href="#"
使用,例如通过替换 hrefhref="javascript:;"
或您用来禁用 href 的任何其他方法。发生滚动的原因是href="#"
滚动到页面顶部。
像这样更改您的代码
$('a.closeButton').click( function(e) {
e.preventDefault();
$('#dialog').dialog('open');
});
你可以试试 :
scrollTo(0, jQuery("body"));