Как указать действия для вспомогательных кнопок в AlertifyJS?

AlertifyJS имеет место для размещения вспомогательных кнопок.

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

  1. Диалог не должен закрываться
  2. Некоторая функция должна быть запущена

Как мне сделать эти две вещи?

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

Ниже мой javascript, а вот JSFiddle.



    // Run this function when the auxiliary button is clicked
    // And do not close the dialog
    var helpInfo = function () {
        alertify.notify("help help help");
    };

    var custom = function () {
        if (!alertify.helper) {
            alertify.dialog('helper', function factory() {
                return {
                    setup: function () {
                        return {
                            buttons: [{
                                text: 'Help',
                                scope: 'auxiliary'
                            }],
                            options: {
                                modal: false
                            }
                        };
                    }
                };
            }, false, 'alert');
        }
        alertify.helper('Do you need help?', "hello world", helpInfo);
    };

    custom();

2 ответа

Решение

AlertifyJS обратные вызовы будут переданы специальным closeEvent объект. Чтобы сохранить диалог открытым, ваш обратный вызов должен установить свойство отмены в true или просто return false,

var helpInfo = function (closeEvent) {    
   alertify.notify("help help help");    
   closeEvent.cancel = true;
  //or
  //return false;
};

Смотрите обновленную скрипку

Добавьте дополнительный параметр к helpInfo функция, чтобы вы могли получить доступ к объекту Event, переданному вместе с событием. Теперь вы можете предотвратить действие по умолчанию (которое закроет диалог).

var helpInfo = function (e) {
    alertify.notify("help help help");
    e.preventDefault();
};
Другие вопросы по тегам