关闭后jqueryui对话框返回上一个窗口位置

时间:2014-05-15 16:48:41

标签: jquery jquery-ui

我有一系列jQuery对话框,其中一些包含很多信息。对话框打开后,页面将滚动显示对话框的底部。此外,这些对话框只能通过底部的按钮关闭,有时会将信息隐藏在对话框的最顶部。

我有两个问题我想解决:

  • 打开长对话框时,我想阻止强制滚动到底部。
  • 关闭对话框后,我想回到对话框打开前页面所在的位置。

        //Code added due to StackOverflow requirement
        $dialog = $(this).next('.dialog-content').dialog({
        closeOnEscape: false,
        open: function (event, ui) {
            $(".ui-dialog-titlebar-close").hide();
            //it's almost as if I need a beforeOpen function
        },
        . . .
    

以下是我完成对话框构建的方法,以及上面的第一个问题:http://jsfiddle.net/rjezB/3/

要查看第二个问题,请在页面中向下滚动一下,然后打开对话框。我想回到相同的滚动位置,而不是再次回到页面顶部。

非常感谢任何指针。

1 个答案:

答案 0 :(得分:1)

问题在于jQuery UI Dialog的内置自动对焦功能:

您可以在调用对话框之前执行此功能来防止这种情况。

$.ui.dialog.prototype._focusTabbable = function(){};

将焦点功能重新定义为空函数。

添加代码的示例:

http://jsfiddle.net/rjezB/4/