JavaScript的传递参数​​的功能

菜鸟问题:我有以下的JavaScript函数。 这正常工作,但我不想硬编码字符串“名称”和“namesDiv”。 我想在通过他们作为参数传递给getItems()。我该怎么办呢?

编辑:功能GETMSG()返回一个JSON对象:结果。

HTML:

<input type="button" onclick="getItems(); return false;" value="Go"/>

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 = ""; }

--------------解决方案-------------

对于他们的一半,很明显; 你刚开始的参数传递给函数:

function loadingMsg(containerID) {
clearContainer(containerID);
document.getElementById(itemDiv).append(foo);
}

function clearContainer(containerID) {
document.getElementById(containerID).innerHTML = "";
}

callback是有点复杂。 我们将会把它变成返回回调函数。

function makeCallback(containerID) {
function callback(result, args) {
clearContainer();
document.getElementById(containerID).append(foo);
}
return callback;
}

现在,我们可以调用makeCallback得到一个回调。 现在,我们可以写getItems

function getItems(itemType, containerID) {
loadingMsg(containerID);
GetMsg(itemType, null, makeCallback(containerID));
}

你可以简单:

HTML

<input type="button" onclick="getItems('Names', 'namesDiv'); return false;" value="Go"/>

JS

function getItems(name, div) {
loadingMsg();
GetMsg(name, null, function(r, args) { callback(div, r, args); });
}

编辑:我想我已经涵盖了一切...

onclick="getItems('namesDiv', 'Names'); return false;"

接着:

function getItems(param1, param2) {

param1namesDivparam2Names

这就是说,我建议你看一看非侵入式JavaScript尤其是谈到从标记行为分离的一部分。

使用addEventListener ,而不是内嵌onclick

<input type="button" id="getItems" value="Go" />

JS:

function getItems(name, id) {
loadingMsg(id);
GetMsg(name, null, callback(id));
}

function callback(id){
return (function() {
function(result, args){
clearContainer(id);
//do stuff
document.getElementById(id).append(foo);
}
})();
}

function loadingMsg(id){
clearContainer(id);
// do stuff
document.getElementById(id).append(foo);
}

function clearContainer(id){
document.getElementById(id).innerHTML = "";
}

document.addEventListener("DOMContentLoaded", function() {
document.getElementById("getItems").addEventListener("click", function() {
getItems("Names", "namesDiv");
}, false);
}, false);

分类:JavaScript的 时间:2015-03-15 人气:1
本文关键词: JavaScript中,参数传递
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.969 (s). 10 q(s)