我在我的对话框中使用Alertify Jquery插件。问题是确认后确认似乎不起作用:
<img onclick="go()" src="test.jpg">
<script type="text/javascript">
// confirm dialog
function go(){
alertify.confirm("Reset password?", function (e) {
if (e) {
// user clicked "ok"
secondconfirm();
} else {
// user clicked "cancel"
}
});
}
function secondconfirm(){
alertify.confirm("Password is changed<br>Mail it to the user?", function (e) {
if (e) {
//Done
alertify.success("Password reset and mailed to user.");
} else {
// user clicked "cancel"
alertify.success("Password reset.");
}
});
}
</script>
我想以这种方式使用它,因为基于单击是或否,必须要求第二个问题。如果我像这样使用它,第二个确认对话框会很快出现,然后弹出屏幕。更令人烦恼的是,覆盖屏幕其余部分的DIV保持不变,因此我甚至无法在不刷新整个页面的情况下使用该网站。我想这与第一个淡出的对话框有关,也隐藏了第二个对话框。
如何解决这个问题?
答案 0 :(得分:2)
尝试使用secondconfirm
方法延迟执行setTimeout
方法的正文:
function secondconfirm() {
setTimeout(function () {
alertify.confirm("Password is changed<br>Mail it to the user?", function (e) {
if (e) {
//Done
alertify.success("Password reset and mailed to user.");
} else {
// user clicked "cancel"
alertify.success("Password reset.");
}
});
}, 1000); // I went as low as 300 ms, but higher value is safer :)
return true;
}
答案 1 :(得分:0)
真的需要alertify吗?我们可以尝试自己确认。
if(confirm("Reset password?"))
{
// user clicked "ok"
secondconfirm();
}
else
{
// user clicked "cancel"
}
function secondconfirm(){
if(confirm("Password is changed<br>Mail it to the user?") {
//Done
alert("Password reset and mailed to user.");
} else {
// user clicked "cancel"
alert("Password reset.");
}
}