Intereting Posts
Код JSFiddle не работает на моей собственной странице Загрузка gif-изображения при запуске jQuery ajax как назначить значение переменной javascript переменной php Как центрировать div вертикально внутри абсолютно позиционированного родительского div Зачем использовать список для навигации, а не кнопок? Угловая ошибка проверки формы 2 «Неисправленное отклонение обещания: нельзя назначить ссылку или переменную!» Какая польза от Полоса хода, выполненная из сплошной линии, с точками в виде шагов display: table-cell, border-spacing не работают с кнопками? ограничить ввод пользователем с помощью javascript HTML + CSS: Как заставить содержимое div оставаться в одной строке? Должен ли я указывать атрибуты высоты и ширины для моих IMG в HTML? Могу ли я создавать ссылки с «target =» _ blank «» в Markdown? Рендеринг CSS в веб-приложении Go Кто-нибудь получил HTML-письма, работающие с Twitter-бутстрапом?

Диалоговое окно jquery ui открывается только один раз

У меня есть кнопка, которая открывает диалог при нажатии. Диалог отображает div, который был скрыт

После закрытия диалогового windows, щелкнув значок X, диалог не может быть снова открыт.

Solutions Collecting From Web of "Диалоговое окно jquery ui открывается только один раз"

Скотт Гонсалес (из команды jQuery UI) рассказывает о причине, по которой многие люди сталкиваются с этой проблемой при запуске с пользовательским интерфейсом jQuery в недавнем сообщении в блоге: http://blog.nemikor.com/2009/04/08/basic-usage -of-The-JQuery-UI-диалог /

Выдержка:

Проблема, с которой пользователи часто сталкиваются с диалоговыми windowsми, заключается в том, что они пытаются создать новый диалог каждый раз, когда пользователь выполняет какое-либо действие (обычно щелкая ссылку или кнопку). Это понятная ошибка, потому что на первый взгляд кажется, что вызов .dialog () для элемента – это то, что заставляет открыть диалог. На самом деле происходит то, что создается новый экземпляр диалога, и затем этот экземпляр открывается сразу после создания экземпляра. Причина, по которой открывается диалоговое окно, заключается в том, что в диалоговом окне есть опция autoOpen, которая по умолчанию имеет значение true. Поэтому, когда пользователь дважды вызывает .dialog () в элементе, второй вызов игнорируется, поскольку диалог уже был создан на этом элементе.

Решение:

Простое решение этой проблемы – создать диалоговое окно с параметром autoOpen, установленным в false, а затем вызвать .dialog (‘open’) в обработчике событий.

$(document).ready(function() { var $dialog = $('
') .html('This dialog will show every time!') .dialog({ autoOpen: false, title: 'Basic Dialog' }); $('#opener').click(function() { $dialog.dialog('open'); }); });

Вы используете диалог ui? Вы должны опубликовать некоторый код, чтобы мы могли видеть, что вызывает вашу проблему. Но здесь есть предположение (потому что я совершил ту же ошибку в последнее время). При использовании диалога ui вы должны инициализировать диалог только один раз.

  $(document).ready(function() { $('#dialog').dialog({ autoOpen:false, modal:'true', width:450, height:550 }); $('#MyButton').click(openDialog); }); 

Этот код инициализирует диалог, но не показывает его. Функция openDialog откроет диалоговое окно при нажатии кнопки MyButton.

  var openDialog = function(){ $('#dialog').load('loadurl.php');//load with AJAX //optionally change options each time it is clicked $('#dialog').dialog('option', 'buttons',{ "Cancel":function(){ $('#dialog').dialog('close'); } }); //actually open the dialog $('#dialog').dialog('open'); }; 

В дополнение к принятому отвечу я хотел бы добавить, что вам нужно обратить внимание при использовании этого в asp.net updatepanel. Если вы нажмете на кнопку, тогда произойдет обратная передача, всплывающее окно откроется, но не откроется во второй раз из-за произошедшей обратной передачи. Таким образом, вы должны убедиться, что кнопка, которую вы используете для открытия всплывающего windows, не возвращается. то есть:

 Click me