Intereting Posts
Требуется ли атрибут alt тега img для кодирования? CSS – новый Firefox-релиз больше не отображает Border-Image Как я могу получить абсолютно позиционированный div для расширения вне его релятивистски-позиционированного родителя, который имеет переполнение: auto? Автоматически вертикально прокручивать цикл содержимого содержимого Изменение HTML с помощью java Могу ли я изменить этот Javascript для печати изображений из Div? Javascript изменяет содержимое div по щелчку CSS: плавающие несколько элементов с разной высотой на нескольких строках? Проблемы с выравниванием семейного дерева CSS с длиной имени Внутренняя граница div, влияющая на запас div : проблема с hover, когда мышь перемещается по iframe, находящемуся внутри div | Internet Explorer Возможно ли отобразить документ .html или .html fragment в содержимом CSS? Как я могу выполнять свою позицию на странице при обновлении (AJAX) Как сделать элемент HTML изменяемым с помощью чистого javascript? Как получить ввод сфокусирован или не используется jquery

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

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

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

Скотт Гонсалес (из команды 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