jQuery ui диалоговое окно открывается только однажды

Кроме того, существует проблема возможных 2,0 откатов. Доверяйте мне, это произошло со мной пару раз, таким образом, я уверен, что это произошло с другими.

я также соглашаюсь, что абстракция является лучшей. Наряду с фактом, исходная цель ORM состоит в том, чтобы составить соответствие RDBMS приятно к понятиям OO. Однако, если все хорошо работало, прежде чем LINQ при необходимости отклониться немного от понятий OO тогда завинчивают их. Понятия и действительность не всегда соответствуют хорошо вместе. Нет никакой комнаты для воинственных зилотов в IT.

24
задан flybywire 9 November 2009 в 15:55
поделиться

2 ответа

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

Выдержка:

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

Решение:

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

$(document).ready(function() {
    var $dialog = $('<div></div>')
        .html('This dialog will show every time!')
        .dialog({
            autoOpen: false,
            title: 'Basic Dialog'
        });

    $('#opener').click(function() {
        $dialog.dialog('open');
    });
});
39
ответ дан 28 November 2019 в 23:18
поделиться

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

 $(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');

};
9
ответ дан 28 November 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: