JavaScript函数执行得太快了

soz*_*trk -2 jquery callback

在下面的例子中,myFonk立即调用; 它不会等待click事件.为什么不?

    function myFonk(info) {
        $("#result").html(info);
    }

    function getText(text) {
        return function () {
            myFonk(text);
        }
    }

    $(document).ready(function () {
        $("#b1").click(getText("getText"));
        $("#b2").click(myFonk("myFonk"));
    });
Run Code Online (Sandbox Code Playgroud)

K D*_*K D 6

每当我们用()编写函数名时,它立即调用该函数,因此 myFonk("myFonk")不正确..

写下面的方式.

function myFonk(info) {
    $("#result").html(info);
}

function getText(text) {
    return function () {
        myFonk(text);
    }
}

$(document).ready(function () {
    $("#b1").click(getText("getText"));
    $("#b2").click(function () {
        myFonk("myFonk")
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 简而言之,添加一个回调函数,然后在其中编写代码。使用function(){}; 声明并在其中编写代码。 (2认同)