0

我有一个看起来像这样的功能。有用。

问题

这个函数myFunction被许多其他函数调用,取决于哪个函数它应该在成功时做一些不同的事情。

问题

这是如何解决的?某种回调?还是我必须发送一个额外的参数才能让函数知道?

代码

function myfunction()
{
    var value = "myvalue";
    var post_url = "ajax.php";

    $.post(  
        post_url,
        {
             value: value,
        },
            function(responseText){  
                var json = JSON.parse(responseText);
                if(json.success)
                {
                    console.log('success'); 
                }
            }
        );
    }
}
4

3 回答 3

2

添加一个函数参数并在成功时调用它:

function myfunction(callback)
{
    var value = "myvalue";
    var post_url = "ajax.php";

    $.post(  
        post_url,
        {
             value: value,
        },
            function(responseText){  
                var json = JSON.parse(responseText);
                if(json.success)
                {
                    console.log('success'); 
                    //call callback 
                    callback();

                }
            }
        );
    }
}
于 2013-01-17T17:49:12.317 回答
1

接受myfunction回调:

function myfunction(callback)
{
    var value = "myvalue";
    var post_url = "ajax.php";

    $.post(post_url, { value: value }, callback);
}

然后你可以传入任何要在POST返回时执行的函数:

myfunction(function(responseText){  
    var json = JSON.parse(responseText);
    if (json.success)
    {
        console.log('success'); 
    }
});
于 2013-01-17T17:47:12.833 回答
0

是的,您要么需要一个参数来识别调用者,比如

function myfunction(caller) {
    if (caller == "Foo") {
        // some code
    }
}

myFunction("Foo");

或者使用全局变量

function myFunction() {
    if (caller == "Foo") {
        // some code
    }
}

caller = "Foo";
myFunction();
于 2013-01-17T17:49:35.530 回答