Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 停止函数,直到单击“确定”或“取消”-JQUERY_Javascript_Promise_Confirm - Fatal编程技术网

Javascript 停止函数,直到单击“确定”或“取消”-JQUERY

Javascript 停止函数,直到单击“确定”或“取消”-JQUERY,javascript,promise,confirm,Javascript,Promise,Confirm,我创建了如下自定义确认框: function formPopup(message, callback) { message = message + '<div class="clear"></div><button class="mybutton" name="check" value="true">Yes</button>' + '<button class="mybutton mybutton2" name

我创建了如下自定义确认框:

function formPopup(message, callback) {
    message = message + '<div class="clear"></div><button class="mybutton" name="check" value="true">Yes</button>' +
            '<button class="mybutton mybutton2" name="check" value="false">No</button>';
    createPopup("Message", message);

    $(".popup .body button[name='check']").bind("click", function (e) {
        val = $(this).val();
        if (val == "true") {
            $(".popup").find(".close").trigger("click");
            typeof (callback) != "undefined" ? callback() : null;
        } else {
            $(".popup").find(".close").trigger("click");
        }
    });
}
但这没用


tnx很多

你的意思是这样的吗

jQuery无法在单击函数中获取“this”,我将其替换为e.target,因此event.target==您正在单击的按钮

函数showPopup(消息、回调){
$(“.popup”).css(“显示”、“块”);
$(“.title”).html(信息);
//只有按钮1的值无论如何都是真的,但只是为了显示如何访问按钮对象
$(“.b1”)。在((单击),(e)=>{
var val=$(e.target).val();
如果(val=“true”){
closePopup();
typeof(callback)!=“未定义”?callback():null;
}否则{
closePopup();
}
});
//按钮2,尝试尽可能多地拆分,使一切变得更容易
$(“.b2”)。在(单击),(e)=>{
closePopup();
});
}
函数closePopup(){
$(“.popup”).css(“显示”、“无”);
设置超时(()=>{
showPopup(“再次返回”,()=>{console.log(“回调”);});
}, 2000);
}
showPopup(“message”,()=>{console.log(“callback”);})
.popup{
位置:固定;
显示:无;
左:0;
排名:0;
底部:0;
右:0;
背景:rgba(0,0,0,0.2);
z指数:1;
}
.弹出内容{
位置:绝对位置;
颜色:红色;
背景:绿色;
宽度:300px;
左:计算(50%-150px);
高度:100px;
顶部:calc(50%-50px);
z指数:2;
}

对
不

弹出窗口是否显示?使用自定义警报库可能会非常简单,因为它不可能像
警报
提示符
那样同步等待表单弹出窗口。您必须使代码异步。让我们看看你是如何使用承诺的。
promise and when