jQuery nyromodal + ASP.Net + UpdatePanel/AJAX - endShowContent не работает, мерцает, теряет фокус
Я использую плагин jQuery nyroModal в ASP.Net. Я люблю nyroModal, и в целом он работает очень хорошо.
Но я использую обратный вызов endShowContent для установки фокуса на первый элемент ввода текста в содержимом страницы после завершения загрузки nyromodal. Чтобы добиться этого, у меня есть следующий код на странице, которая запускает всплывающее окно с nyromodal.
$ (function () {$.fn.nyroModal.settings.endShowContent = function (elt, settings) {$ ('input: text: first', elt.content).focus ();};});
Я могу сказать, как он работает, потому что первое текстовое поле мгновенно получает фокус, когда появляется модальное. Но затем он как бы мерцает и снова теряет фокус. Это похоже на то, как будто nyromodal решает, что он все еще не полностью загружен, и происходит что-то еще, что отвлекает внимание. Или, возможно, мешает UpdatePanel? (Я не знаю, почему это так). Возможно ли, что раздутые автоматически сгенерированные AJAX JS-вызовы UpdatePanel что-то делают после вызова nyromodal endShowContent?
Любая помощь или понимание приветствуется.
3 ответа
Я пытался воссоздать проблему здесь: http://jsbin.com/igibo
Я не могу дублировать проблему, поэтому я предполагаю, что в вашем коде есть что-то еще, что вызывает проблему.
Попробуйте отредактировать воссоздание через http://jsbin.com/igibo/edit чтобы продублировать проблему, и тогда мы сможем ее решить.
PS Хотя замечательно, что вы дорабатываете свою проблему, обновите вопрос, а не добавляйте больше информации в новых ответах. (Они технически не ответы)
Спасибо, Брианпейрис! Ты не поверишь, мне плохо.
Я получил ваш код из этого jsbin и скопировал его локально, поэтому у меня был ваш пример кода рядом с моими собственными тестовыми страницами. На моих тестовых страницах я использовал какой-то старый способ запуска nyromodal, который был:
<a href="modal.html" target="_blank" class="nyroModal">Launch modal</a>
Я нашел этот код по всему Интернету в примерах и так далее. Но, похоже, это какой-то старый / изворотливый / превосходный способ запуска модельного всплывающего окна с помощью nyromodal!
Я просто сделал это нормальной / чистой гиперссылкой и удалил мусор класса и цели, а затем использовал тот же стиль, который вы мне прислали:
$('a').nyroModal();
Теперь все мои проблемы исчезли. Это все исправило!:) Также анимация открытия окна НАМНОГО более плавная.
Спасибо. Я нашел документацию немного противоречивой для этого плагина. Вы помогли направить меня в правильном направлении. Таким образом, фокус работает идеально и очень плавно.
ура
Вы пытались обернуть свой код в
$(document).ready(function() {
// put all your jQuery goodness in here.
});
JQuery Document Ready Учебное пособие
Возможно, дом еще не загружен полностью.