Переопределить параметры по умолчанию для jQueryUI
Я хочу иметь возможность создавать модальные диалоги, например,
close: function() {
$(this).remove();
}
по умолчанию, без необходимости указывать их при создании диалога, но каким-то образом переопределять эти параметры на одном месте.
Возможно ли это?
Ответы
Ответ 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 и применяется к большинству (если не все) языкам разработки программного обеспечения. Одним из основных преимуществ является то, что он упрощает работу с вашим кодом.