#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 потому что он такой старый. Почему вы его используете?