jQuery nyromodal + ASP.Net + Панель обновления / AJAX - endShowContent не работает, мерцает, теряет фокус

StackOverflow https://stackoverflow.com/questions/855481

  •  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();

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

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

Ваше здоровье

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top