Переменное количество необязательных параметров
Я использую этот инструмент здесь http://craftpip.github.io/jquery-confirm/ и я хотел иметь всплывающее окно, которое имеет переменное количество кнопок, основанных на части данных, используемых для создания всплывающих окон.
Вот пример того, как выглядит очень простой / пустой.
$.confirm({
title: 'testing',
content: 'this has two static buttons',
buttons: {
confirm: function () {
},
cancel: function () {
},
}
});
То, что я хочу, это иметь возможность поставить цикл foreach в стороне от "кнопок: { ... }".
Есть ли способ сделать это или способ достичь того, что я пытаюсь сделать?
2 ответа
Просто создайте свой объект параметров перед:
var options = {
title: 'testing',
content: 'this has two static buttons',
buttons: {},
};
$.each( variable_name, function(){
options.buttons[ this.btn_name ] = this.fn;
} );
$.confirm( options );
Конечно, все зависит от того, как выглядит объект, который вы зацикливаете, но логика здесь.
Ваша логика перевернута. Следующее является объектом:
{
title: 'testing',
content: 'this has two static buttons',
buttons: {
confirm: function () {
},
cancel: function () {
},
}
}
Так что вы могли бы сделать:
var options = {
title: 'testing',
content: 'this has two static buttons',
buttons: {
confirm: function () {
},
cancel: function () {
},
}
};
$.confirm(options);
Затем вы можете добавить элементы по
options.buttons["mybutton"] = function() { };
Вы можете поместить предыдущий код в цикл и изменить строку "mybutton" на то, что вы хотите для любых функций, которые у вас есть. Вы в основном спрашиваете, как добавить свойство к существующему объекту javascript.