Как предотвратить прокрутку окна jquery.ui.dialog вверх (при программном вызове)

У меня есть следующий код:

    $(".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. Он не изменен (с использованием CDN Google )
  • . не отменяя события -, как видите, я вызываю stopPropagation, preventDefault, и и возвращаю false. Так что дело не в том, что событие проходит через (, и даже если бы это было так, это все равно не хеш-ссылка на начало страницы)

Используя jQuery 1.72 и jQuery UI 1.8.21 (последние версии каждого ).

5
задан Jordan Reiter 3 February 2015 в 15:41
поделиться