gpt4 book ai didi

从确认返回的 Javascript Alertify

转载 作者:可可西里 更新时间:2023-11-01 02:39:43 25 4
gpt4 key购买 nike

我正在尝试使用 alertify.js 作为我所有确认脚本的确认对话框。但它不像常规 JS confirm 那样工作。在下面的代码中,我从未得到 return true

function aConf ( mes ) {
alertify.confirm( mes, function (e) {
return e;
});
}

<a href="#" onclick="if(aConf(\'Are you sure you wish to remove this?\')) { function(); } return false;">Delete</a>

当然,如果我用 JS 的 confirm 替换 aConf 它就可以了。那么,为什么 alertify 没有将结果发回给我?

最佳答案

因为confirm是一个阻塞函数(javascript在返回true/false之前不会运行),而alertify是非阻塞的(JS一直在执行)。 Alertify 不会立即返回 true/false,相反,它可能会立即返回 undefined,然后在用户单击 OK 或 Cancel 后调用回调函数。该回调函数的返回值在您的示例中没有影响,因为 onclick 代码已经完成运行(因为它是非阻塞的)。

假设您使用的是:https://github.com/fabien-d/alertify.js/

这是它实际使用回调函数而不是返回值的方式:

alertify.confirm( message, function (e) {
if (e) {
//after clicking OK
} else {
//after clicking Cancel
}
});

对于您的代码示例,您可以尝试如下操作:

function performDelete ( a_element ) {
// perform your delete here
// a_element is the <a> tag that was clicked
}

function confirmAction ( a_element, message, action ) {
alertify.confirm(message, function(e) {
if (e) {
// a_element is the <a> tag that was clicked
if (action) {
action(a_element);
}
}
});
}

<a href="#" onclick="confirmAction(this, 'Are you sure you wish to remove this?', performDelete); return false;">Delete</a>

编辑:更新为通用确认对话框,如果用户单击“确定”,则调用回调函数。

关于从确认返回的 Javascript Alertify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com