我有以下代码:如何防止jquery.ui.dialog从滚动窗口顶端(programaticallly调用时)
$(".foo-form").submit(function (event) {
event.stopPropagation();
event.preventDefault();
$.ajax({
url: this.action,
data: $(this).serializeArray(),
type: 'POST',
dataType: 'json',
success: function (data, msg, resp) {
var $form = $("#second-form");
$form.show().dialog({
resizable: false,
height:400,
width: 600,
modal: true,
title: "Recommendation added",
buttons: [
{
text: "OK",
click: doOK
},
{
text: "Cancel",
click: doCancel
}
]
});
}
})
return false;
});
如果我向下滚动页面并提交表单,当对话框显示出来,它将页面滚动到顶部。有什么方法可以覆盖这个?
东西并不溶液
- 固定为
.ui-dialog
类的定位。它未经修改(使用Google的CDN) - 不取消事件 - 如您所见,我致电
stopPropagation
,preventDefault
,和返回false。因此,这不是该事件是通过去(即使它是,它不是一个哈希链接到页面顶部反正)
使用jQuery 1.72和jQuery UI 21年8月1日(每个最新版本) 。
尝试让请将其scrollTop和设置页面的scrollTop的。 – 2012-08-08 21:48:53
你的意思是'currentScroll = $(window).scrollTop(); $ dialog .... {open:function(){$(window).scrollTop(currentScroll)}}'我的意思是,显然我可以做到这一点。我很喜欢,更重要的是它不会滚动,因为它正在打破页面。 – 2012-08-08 21:50:31