我有这样的代码:
<script>
function GetData(json)
{
.......
code1()
[or]
code2()
[or]
code3()
}
</script>
我希望使用任何选项(code1,code2,code3)调用GetData
。
例如:如果使用GetData
调用code2()
,而使用以下选项打破代码1和代码3,该怎么办?
<script>
code2();
document.write("<script src=\".....callback=GetData\"><\/script>");
</script>
感谢您的帮助。
答案 0 :(得分:2)
阅读您之前的问题,并试图了解您的需求,我相信有两种方法可以解决您的问题:
<强> 1。在回调函数中添加另一个参数
This page有一个很好的回调示例,但我相信你已经理解了这一部分。
在您的代码中,您定义function GetData(json)
。也许你应该把它改成
function GetData(json, callbackfunc) {
..
// Here, instead of any logic for code1() or code2() etc, you just
callbackfunc();
..
}
您需要使用新的函数参数修改已调用GetData
的位置。
<强> 2。使用全局变量来定义您需要的内容
如果由于某种原因无法传递其他参数,则可能需要为回调定义变量。例如:
<script type="text/javascript">
var mynextcallback;
function GetData(json) {
..
mynextcallback();
..
}
</script>
在您致电GetData
的部分,您可以mynextcallback = code1; GetData();
答案 1 :(得分:1)
尝试以下小提琴: http://jsfiddle.net/KJSU5/
var code2 = function(){
alert("This is code2");
};
function GetData()
{
if(typeof code1 !== 'undefined'){
code1();
return;
}
if(typeof code2 !== 'undefined'){
code2();
return;
}
if(typeof code3 !== 'undefined'){
code3();
return;
}
}