Почему кнопка alertify confirm cancel не работает?

#javascript #jsp #alertify #alertifyjs

#javascript #jsp #оповещать #оповещениеjs

Вопрос:

Я использую alertify.confirm() его в своем проекте spring mvc.

 alertify.confirm(
    "Press OK to Confirm",
    function(){ console.log("ok") },
    function(){ console.log("canceled") });
 

Но всякий раз, когда я нажимаю OK CANCEL кнопку или, она выводит «ok» в консоли. Почему это происходит?

Комментарии:

1. да, но может быть перегружен alertify.confirm(message, onok, oncancel);

2. onCancel …. опечатка @Dai

Ответ №1:

У Alertify confirm четыре параметра, а не три: title: string, message: string, onOK: function, onCancel: function )

Измените свой код на это:

 alertify.confirm(
    /*title:  */ "Confirm low-effort stackoverflow posting"
    /*message:*/ "Press OK to Confirm posting a question to stackoverflow without doing a quick 15-seconds google search",
    /*ok:     */ function(){ console.log("ok") },
    /*cancel: */ function(){ console.log("canceled, good, the world is better for you having done your research first") }
);
 

Я вижу перегрузку с 3 параметрами на их странице документации, [однако исходный код Alertify confirm.js][2] повторно использует onok параметр для oncancel — я думаю, что это ошибка:

 main: function (_title, _message, _onok, _oncancel) {
                var title, message, onok, oncancel;
                switch (arguments.length) {
                case 1:
                    message = _title;
                    break;
                case 2:
                    message = _title;
                    onok = _message;
                    break;
                case 3:
                    message = _title;
                    onok = _message;
                    oncancel = _onok;
                    break;
                case 4:
                    title = _title;
                    message = _message;
                    onok = _onok;
                    oncancel = _oncancel;
                    break;
                }
                this.set('title', title);
                this.set('message', message);
                this.set('onok', onok);
                this.set('oncancel', oncancel);
                return this;
            },
 

Учитывая, что AlertifyJS не был существенно обновлен за шесть лет, я думаю, вам следует рассмотреть возможность использования другой библиотеки диалоговых окон. Подумайте о том, чтобы вместо этого использовать собственный HTML5 <dialog> .

Комментарии:

1. Сначала я проверил документацию. Я получил ошибку с четырьмя параметрами. alertify.min-63a08ef1e1e49d82efcc98b21c1b98ae.js:2 Uncaught Error: fn must be a function at Object.dialog (alertify.min-63a08ef1e1e49d82efcc98b21c1b98ae.js:2) . Вот почему я попробовал с тремя параметрами.

2. @mahfujasif Опубликованная вами ошибка показывает, что вы используете уменьшенную версию alertify , которая могла быть изменена в процессе минимизации. Что произойдет, если вы используете не уменьшенную версию, которую можно использовать с пошаговым отладчиком?

3. @mahfujasif Но, честно говоря, я думаю, вам следует просто отказаться Alertify.js потому что он такой старый. Почему вы его используете?