JavaScript function executing too soon

后端 未结 3 797
离开以前
离开以前 2020-12-22 13:28

In the example below, myFonk is called instantly; it doesn\'t wait for the click event. Why not?

    function myFonk(info) {
        $(\"#result         


        
3条回答
  •  旧巷少年郎
    2020-12-22 14:03

    $(document).ready(function () {
        $("#b1").click(getText("getText"));
    });
    

    What you're doing here is calling the function getText("getText") and passing the result of that call to $("#b1").click(). You don't want to pass the result of the function. What you want to do is to pass the function itself. So rewrite as,

    $(document).ready(function () {
        $("#b1").click(function() {
            return getText("getText");
        });
    });
    

    If the function you were interested in had no parameters (let's say, for example, that you wanted to call a function hello(), with no parameters, you could do it the same way:

    $(document).ready(function () {
        $("#b1").click(function() {
            return hello();
        });
    });
    

    ... or you could simplify it:

    $(document).ready(function () {
        $("#b1").click(hello);
    });
    

    Note: you're passing hello (the function itself), not hello() (which would execute the function immediately and return the result to the click() function.

提交回复
热议问题