下面的代码为单行数组中的每个给定 ID 生成点击函数,使用未注释的代码,我收到错误“字符串不是函数”。如果我取消注释注释的代码,并注释单行数组,它确实工作得很好。然而,出于显而易见的原因,我更喜欢使用单行数组的方法。
谁能给我一些好的建议吗?我走在正确的道路上吗?
提前致谢。
// callme
function callme() {
alert("call me");
return true;
}
// create javascript object
//var adapter = {};
// set values - key contains: ID associated with link, button or tab - value contains: the function to call
//adapter['callme'] = callme;
//adapter['callme1'] = callme1;
//adapter['callme2'] = callme2;
//adapter['callme3'] = callme3;
var adapter = ["callme", "callme1", "callme2", "callme3"];
// foreach the object - key as ID - value as associated function
$.each(adapter, function(index, value) {
// click on listed ID
$("#"+ value).click(function() {
// call associated function
value();
});
// end foreach
});
最佳答案
这在一定程度上取决于范围,但总体思路是您可以使用方括号表示法来获取对函数的引用并执行它。例如,以下内容:
window[value]();
相当于第一次迭代的 callme()
,假设 callme
函数是全局作用域的(window
对象的属性) )。
关于javascript - jquery:使用字符串作为函数(错误:字符串不是函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15972673/