Переменное количество необязательных параметров

Я использую этот инструмент здесь 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.

Другие вопросы по тегам