Подтвердить что ты не робот

Как предотвратить прокрутку вверху страницы при появлении диалогового окна JQuery UI?

В настоящее время я использую jTemplates для создания довольно большой таблицы на клиенте, каждая строка имеет кнопку, которая откроет диалоговое окно JQuery UI. Однако, когда я просматриваю страницу и нажимаю на одну из этих кнопок, откроется диалоговое окно jQuery, но позиция прокрутки будет потеряна, а страница вернется к вершине (с блокировкой и фактическим диалогом, отображающим экран). Кто-нибудь видел или знал, что может вызвать эту проблему?

Спасибо.

4b9b3361

Ответ 1

Используете ли ящик привязки для реализации "button", который появляется в диалоговом окне? Если это так, вы хотите, чтобы обработчик кликов открыл диалоговое окно, чтобы вернуть значение false, чтобы не активировать действие тега привязки по умолчанию. Если вы используете кнопку, вам также необходимо убедиться, что она не отправляет (возвращая false из обработчика) и полностью обновляет страницу.

Например,

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


<a class='closeButton'>Close</a>

Ответ 2

Если ваши кнопки работают с тэгом html anchor с href="#", замените href, например, на href="javascript:;" или любой другой метод, который вы используете для отключения href. Причина прокрутки происходит из-за href="#" прокрутки вверху страницы.

Ответ 3

измените свой код следующим образом

$('a.closeButton').click( function(e) {
    e.preventDefault();
     $('#dialog').dialog('open');
});

Ответ 4

Вы можете попробовать:

scrollTo(0, jQuery("body"));