弹出jQuery UI对话框时,如何防止滚动到页面顶部?

Kiw*_*wik 29 scroll jquery-ui jtemplate

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

谢谢.

tva*_*son 69

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

例如,

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


<a class='closeButton'>Close</a>
Run Code Online (Sandbox Code Playgroud)


Fra*_*che 12

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


小智 7

像这样改变你的代码

$('a.closeButton').click( function(e) {
    e.preventDefault();
     $('#dialog').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)