Переопределить параметры диалогового окна jQueryUI по умолчанию - PullRequest
23 голосов
/ 18 февраля 2010

Я хочу иметь возможность создавать модальные диалоги, например, с параметром

close: function() {
    $(this).remove();
}

по умолчанию, без необходимости указывать их при создании диалога, но каким-то образом переопределять эти параметры в одном месте.

Возможно ли это?

Ответы [ 3 ]

60 голосов
/ 05 марта 2010

Мне тоже нужно было переопределить параметры по умолчанию, и мне потребовалось некоторое время, чтобы разобраться с jQuery UI 1.8:

$.extend($.ui.dialog.prototype.options, {
    modal: true,
    resizable: false,
    draggable: false
});

Приведенный выше код позволит вам бросить что-нибудь поверх параметров диалога. Описанный выше метод должен работать для большинства компонентов пользовательского интерфейса (он также позволит вам создавать прототипы для существующих функций или добавлять к ним).

2 голосов
/ 18 февраля 2010

Диалог и другие виджеты в jQuery UI определяют хэш со значениями по умолчанию. Вы можете переопределить их после загрузки пользовательского интерфейса jQuery.

Поиск в javascript строке, где установлены значения по умолчанию:

$.extend($.ui.dialog, {
version: "1.7.2",
defaults: {
    ...

Например, в своем javascript вы можете отключить функцию автоматического открытия с помощью:

$.ui.dialog.defaults.autoOpen = false;

Или вы можете объединить хэш опций:

$.extend($.ui.dialog.defaults, {
  autoOpen: false,
  title: 'Default title'
})
2 голосов
/ 18 февраля 2010

Вы должны создать абстракцию, которая затем вызывает диалоговую функцию jQuery.

По сути, вместо создания букв параметров везде, где вы хотите использовать диалоговое окно jQuery, создайте функцию, которая создает нужные параметры, а затем вызовите из этого диалоговую функцию jQuery.

Затем во всех областях вашего кода вызовите написанную вами функцию, которая инкапсулирует код.

Этот процесс известен как инкапсуляция и применяется к большинству (если не ко всем) языкам разработки программного обеспечения. Одним из основных преимуществ является то, что он облегчает поддержку вашего кода.

...