如何在函数调用中传递参数?
问题描述:
function rp_marcadesmarcaFarm(valor) {
FM_log(3, "marcadesmarcaFarm called = "+valor);
for (i = 0; i < farmList.length; i++) {
var arr = farmList[i].split("|");
var xy = arr[0].split(",");
var fvillageId = xy2id(parseInt(xy[0]), parseInt(xy[1]));
GM_setValue("farmAtivada_"+suffixLocal+fvillageId, valor);
GM_setValue("farmAtivada_"+suffixLocal+i, valor);
};
reloadFarmTable();
};
function createLinkButton(text, title, jsFunction, value) {
var button = dom.cn("a");
button.href = "javascript:void(0)";
button.innerHTML = text;
button.title = title;
if (jsFunction != null) {
button.addEventListener('click', jsFunction, false);
}
return button;
}
createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm(true));
显然最后一个参数(rp_marcadesmarcaFarm(true))在调用createLinkButton时不起作用。如果我改为:如何在函数调用中传递参数?
createLinkButton("X", T('CHECKFARM_M'), rp_marcadesmarcaFarm);
它的工作原理。那么我怎样才能将(true)变量传递给createLinkButton的第三个参数呢?
答
createLinkButton("X", T('CHECKFARM_M'), function() {rp_marcadesmarcaFarm(true)});
答
createLinkButton
等待功能,但rp_marcadesmarcaFarm(true)
调用函数,实际上传递返回值。
你需要的是一个匿名函数,将调用rp_marcadesmarcaFarm(true)
并传递到createLinkButton
createLinkButton("X", T('CHECKFARM_M'), function(){ rp_marcadesmarcaFarm(true); });
+0
因为当我点击按钮调用那个功能的东西。 – FernandoSBS 2010-05-10 18:35:02
谢谢你,是没有的伎俩! – FernandoSBS 2010-05-10 18:34:30