Центрирование диалогового окна JQuery - PullRequest
1 голос
/ 29 августа 2009

У меня есть диалоговое окно JQuery, которое установлено на

position: 'center'

Теперь я запускаю запрос к базе данных и возвращаю длинный список записей, и у каждой записи есть кнопка «Изменить». Если я прокручиваю страницу вниз и нажимаю кнопку редактирования для записи, jquery открывает мой диалог и центрирует диалог на основе позиции прокрутки, но он также сбрасывает прокрутку страницы обратно наверх, поэтому теперь диалог больше не центрируется.

Итак, мои вопросы,

  1. Могу ли я остановить Jquery от сброса положения прокрутки при открытии диалогового окна?

  2. Как установить положение по центру без использования ключевого слова center?

Ответы [ 6 ]

4 голосов
/ 29 августа 2009

Вы должны использовать плагин jQuery, о котором вы нам не рассказали, потому что "center" не является допустимым значением свойства "position". Тем не менее, я предполагаю, что ваша кнопка редактирования настроена как ссылка со значением href, равным «#». Это то, что вызывает прыжок. Чтобы предотвратить это, верните false в свой обработчик событий нажатия на эту кнопку:

$('a.edit').click(function () {
    // logic goes here
    return false;
});
2 голосов
/ 08 сентября 2011

Вы можете использовать объект события и метод protectDefault (), чтобы предотвратить переход страницы наверх:

$('a.edit').click(function (event) {
    event.preventDefault();
    // logic goes here
});
2 голосов
/ 29 августа 2009

Тони, ваша «кнопка» на самом деле является ссылкой, для href установлено значение «#» и обработчик onclick, который выполняет настоящую работу.

Браузер интерпретирует это как «перейти на несуществующий якорь» и переходит в начало страницы.

Restlessdesign - это правильно, если вы используете события jQuery. Если вы определяете обработчик onclick в разметке, то сделайте что-то вроде:

<a href="#" onclick="doSomething();return false();" ...
1 голос
/ 29 августа 2009

Вот что у меня сработало.

В моей функции,

function myedit()
{
....
return false;
}

со ссылкой,

<a href='#' onclick='return myedit();' >edit</a>
0 голосов
/ 10 января 2013

Я тоже наткнулся на это спустя годы. Я просто надеюсь, что это поможет кому-то еще в поисках решения.

Источник:

http://jqueryui.com/position/#default

$("#result").position({
    of: "#wrapper",
    my: "center  middle",
    at: "center middle",    
    collision: "fit flip"
})//$("#result").position({
0 голосов
/ 20 августа 2010

Я знаю, что это старый пост, но я столкнулся с этой проблемой, когда мой диалог не центрировался, поэтому подумал, что я опубликую для всех, кто может столкнуться с этим. На своей странице я также использую плагин jQuery Dimensions.

Если бы я загружал скрипт dimensions после скрипта jQuery UI, это нарушило бы позиционирование диалога. Загружается до jQuery UI и диалог работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...