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