Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Alertify等待确认,然后转到另一页_Javascript_Jquery_Dom_Alertify - Fatal编程技术网

Javascript Alertify等待确认,然后转到另一页

Javascript Alertify等待确认,然后转到另一页,javascript,jquery,dom,alertify,Javascript,Jquery,Dom,Alertify,我是alertify.js的新手。我想做的是,当用户点击链接时,浏览器应该显示确认框。如果用户单击,则转到下一页。如果用户单击“取消”,则停留在同一页面上。是否可以使用alertify.js执行此操作 这是我的HTML代码 <a href="index.php" class="alert">Logout</a> 但问题是,每当我点击链接时,我都会在点击确认之前进入index.php页面 $(".alert").on('click', function(){ e.

我是alertify.js的新手。我想做的是,当用户点击链接时,浏览器应该显示确认框。如果用户单击,则转到下一页。如果用户单击“取消”,则停留在同一页面上。是否可以使用alertify.js执行此操作

这是我的HTML代码

<a href="index.php" class="alert">Logout</a>
但问题是,每当我点击链接时,我都会在点击确认之前进入index.php页面

$(".alert").on('click', function(){
    e.preventDefault();
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            //window.location...redirect
        } else {
            //do something
        }
    });
});

您不需要返回true或false…您已经在if语句中检查了它

问题是不可能让代码等待。因此,您需要做的是取消原来的单击,然后调用代码导航到新页面

$(".alert").on('click', function(e){
    e.preventDefault();
    var href = this.href;
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            window.location.href = href;
        }
    });
});

这是正确的方法,但您需要对事件调用
preventDefault()
,以阻止其正常行为,并让
.confirm()
的回调处理如何防止内部回调上的默认行为…为
单击
回调执行此操作
$(".alert").on('click', function(e){
    e.preventDefault();
    var href = this.href;
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            window.location.href = href;
        }
    });
});