2009-08-28 4 views
1

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

position: 'center' 

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

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

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

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

+0

появляется ли символ # в конце URI в адресной строке, когда это происходит? –

+0

Да, да, я этого раньше не замечал ... идеи? –

+0

Как и в случае с беспокойством, вы используете ссылку, а не кнопку, и вам нужно вернуть false. –

ответ

4

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

$('a.edit').click(function() { 
    // logic goes here 
    return false; 
}); 
+0

центр действителен http://jqueryui.com/demos/dialog/#option-position –

2

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

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

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

<a href="#" onclick="doSomething();return false();" ... 
+0

Это не сработало для меня, мне нужно было вернуть обратно. –

+0

Ничего после возвращения не будет работать. –

1

Это то, что работает для меня.

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

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

со ссылкой,

<a href='#' onclick='return myedit();' >edit</a> 
0

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

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

2

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

$('a.edit').click(function (event) { 
    event.preventDefault(); 
    // logic goes here 
}); 
0

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

источник:

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

$("#result").position({ 
    of: "#wrapper", 
    my: "center middle", 
    at: "center middle",  
    collision: "fit flip" 
})//$("#result").position({ 
Смежные вопросы