K.R*_*.R. 4 javascript parameter-passing
菜鸟问题:我有以下JavaScript函数.这工作正常但我不想硬编码字符串"Names"和"namesDiv".我想将它们作为参数传递给getItems().我该怎么做?
编辑:函数GetMsg()返回一个JSON对象:result.
HTML:
<input type="button" onclick="getItems(); return false;" value="Go"/>
Run Code Online (Sandbox Code Playgroud)
JS:
function getItems() {
loadingMsg();
GetMsg("Names", null, callback);
}
function callback(result, args){
clearContainer();
//do stuff
document.getElementById("namesDiv").append(foo);
}
function loadingMsg(){
clearContainer();
// do stuff
document.getElementById("namesDiv").append(foo);
}
function clearContainer(){
document.getElementById("namesDiv").innerHTML = "";
}
Run Code Online (Sandbox Code Playgroud)
对于其中一半,这是显而易见的; 你刚开始将参数传递给函数:
function loadingMsg(containerID) {
clearContainer(containerID);
document.getElementById(itemDiv).append(foo);
}
function clearContainer(containerID) {
document.getElementById(containerID).innerHTML = "";
}
Run Code Online (Sandbox Code Playgroud)
callback有点复杂.我们将它变成一个返回回调的函数.
function makeCallback(containerID) {
function callback(result, args) {
clearContainer();
document.getElementById(containerID).append(foo);
}
return callback;
}
Run Code Online (Sandbox Code Playgroud)
现在我们可以打电话makeCallback来获得回调.我们现在可以写getItems:
function getItems(itemType, containerID) {
loadingMsg(containerID);
GetMsg(itemType, null, makeCallback(containerID));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59500 次 |
| 最近记录: |