Подтвердить что ты не робот

Переопределить параметры по умолчанию для jQueryUI

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

В качестве примера, в вашем javascript вы можете отключить autoOpen с помощью:

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

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

$.extend($.ui.dialog.defaults, {
  autoOpen: false,
  title: 'Default title'
})

Ответ 3

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

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

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

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