单击事件后的javascript函数回调

Ser*_*hov 2 javascript jquery

这是我的代码

function confirm(){

    okBtn.on('click', function(){
        // return true from confirm function
    });
    cancelBtn.on('click', function(){
        // return false from confirm function
    });
}


if(confirm()){
    // make something. I need to keep this code here, not in confirm function
}
Run Code Online (Sandbox Code Playgroud)

单击 okBtn 或 cancelBtn 后,我需要执行回调。我需要保持回调代码不在功能中,因为我有很多使用此功能的案例。

Fel*_*ing 5

使confirm函数接受回调并在事件处理程序中调用它:

function confirm(callback){
    okBtn.on('click', function(){
        callback(true);
    });
    cancelBtn.on('click', function(){
        callback(false);
    });
}


confirm(function(result) {
    // make something. I need to keep this code here, not in confirm function
});
Run Code Online (Sandbox Code Playgroud)

但是没有办法同步处理事件处理程序(就像您似乎打算做的那样)。您必须绑定事件处理程序的真正原因是您不知道事件何时发生。相反,您必须对事件做出反应。你必须习惯这种编码方式,没有办法。