jQuery nyromodal + ASP.Net + UpdatePanel / AJAX - endShowContent не работает, мерцает, теряет фокус - PullRequest
0 голосов
/ 13 мая 2009

Я использую плагин jQuery nyroModal в ASP.Net. Я люблю nyroModal, и в целом он работает очень хорошо.

Но я использую обратный вызов endShowContent, чтобы установить фокус на первый элемент ввода текста в содержимом страницы после завершения загрузки nyromodal. Чтобы добиться этого, у меня есть следующий код на странице, который запускает всплывающее окно в нейромодале.

$ (function () { $ .fn.nyroModal.settings.endShowContent = function (elt, settings) {$ ('input: text: first', elt.content) .focus (); }; });

Я могу сказать, как он работает, потому что первое текстовое поле мгновенно получает фокус, когда появляется модальное. Но затем он как бы мерцает и снова теряет фокус. Это похоже на то, как будто nyromodal решает, что он все еще не полностью загружен, и происходит что-то еще, что отвлекает внимание. Или, возможно, мешает UpdatePanel? (Я не знаю, почему это так). Возможно ли, что раздутые автоматически сгенерированные AJAX JS-вызовы UpdatePanel что-то делают после вызова nyromodal endShowContent?

Любая помощь или понимание приветствуется.

Ответы [ 3 ]

2 голосов
/ 13 мая 2009

Я пытался воссоздать проблему здесь: http://jsbin.com/igibo

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

Попробуйте отредактировать воссоздание через http://jsbin.com/igibo/edit, чтобы продублировать проблему, тогда мы можем решить ее оттуда.

P.S. Хотя замечательно, что вы уточняете свою проблему, обновите вопрос, а не добавляйте больше информации в новых ответах. (Технически это не ответы)

0 голосов
/ 13 мая 2009

Спасибо, Брианпейрис! Ты не поверишь, мне плохо.

Я получил ваш код из этого jsbin и скопировал его локально, поэтому у меня был ваш пример кода рядом с моими собственными тестовыми страницами. На моих тестовых страницах я использовал какой-то старый способ запуска nyromodal, который был:

<a href="modal.html" target="_blank" class="nyroModal">Launch modal</a>

Я нашел этот код по всему Интернету в примерах и так далее. Но, похоже, это какой-то старый / изворотливый / превосходный способ запуска всплывающего окна модели с nyromodal!

Я просто сделал нормальную / чистую гиперссылку и удалил мусор класса и цели, затем использовал тот же стиль, который вы мне прислали:

$('a').nyroModal();

Теперь все мои проблемы исчезли. Это все исправило! :) Также анимация открытия окна НАМНОГО более плавная.

Большое спасибо. Я нашел документацию немного противоречивой для этого плагина. Вы помогли направить меня в правильном направлении. Таким образом, фокус работает идеально и очень плавно.

Приветствия

0 голосов
/ 13 мая 2009

Вы пробовали обернуть ваш код в

$(document).ready(function() { // put all your jQuery goodness in here. });

Учебник по работе с документами JQuery

Возможно, дом еще не загружен полностью.

...