取自w3在线教程:
$("button").click(function(){
$("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr){
if(statusTxt == "success")
alert("External content loaded successfully!");
if(statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
});
函数调用如何知道哪些参数正在传递,比如说你只传入statusTxt
和xhr
,或者你只想传入xhr
?
请放轻松我们:)这是我的第一个问题
答案 0 :(得分:1)
简单地说,它没有,因为它从你的功能调用中分配从左到右传递的每个参数。让我们说你有这个功能,复制自你:
function someFunction(responseTxt, statusTxt, xhr){
if(statusTxt == "success")
alert("External content loaded successfully!");
if(statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
}
并且您希望传递变量值 statusTxt :"成功"当你调用这个函数时, xhr :your_xhr。如果你这样调用函数:
someFunction("成功",your_xhr);
这意味着"成功"将被分配给参数 responseTxt ,并且your_xhr将分配到 statusTxt 。
通常,您可以将responseTxt设置为 null 并将其余部分设置为您想要的内容,例如:
someFunction(null," success",your_xhr);
或在函数定义中使用对象文字。这是一个例子:
function someFunction(options){
if(options.statusTxt == "success")
alert("External content loaded successfully!");
if(options.statusTxt == "error")
alert("Error: " + options.xhr.status + ": " + options.xhr.statusText);
}
并且您的函数调用如下所示:
someFunction({statusTxt:"成功",xhr:your_xhr});
当然,您需要检查responseTxt是否 未定义 ,以防您不使用它。
希望这会有所帮助。