Javascript如何在事件处理程序

时间:2017-11-29 23:16:50

标签: javascript jquery callback event-handling

我想避免在事件处理程序中的几个回调中重复相同的代码块,你知道这是非常自然的。但问题是如果我将代码放在一个函数中,处理程序将立即执行它而不是在事件发生时。

例如:

    $('#btn1').click(function (){
        // do something
        // same block of code
        sharedCode(); // PROBLEM: it will be executed right away
    }

    $('#btn2').click(function (){
        // do something else
        // same block of code
    }

    $('#btn3').click(function (){
        // do something else
        // same block of code
    }

    function sharedCode() {
        // same block of code
    }

1 个答案:

答案 0 :(得分:0)

创建一个函数并在&你想要的地方。

function myBlock(){
    //Your logic here
}

$('#btn1').click(function (){
    // do something
    myBlock(); // same block of code
    sharedCode(); // PROBLEM: it will be executed right away
}

$('#btn2').click(function (){
    // do something else
    myBlock(); // same block of code
}

$('#btn3').click(function (){
    // do something else
    myBlock(); // same block of code
}

function sharedCode() {
    myBlock(); // same block of code
}

希望这有帮助。