javascript - jquery:使用字符串作为函数(错误:字符串不是函数)

标签 javascript jquery arrays string each

下面的代码为单行数组中的每个给定 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/

相关文章:

java - 给定一个排序整数数组,我如何找到是否存在一组总和为 K 的 3 个元素?

C++/MySQL,在 1 次执行中插入 200 个数据点数组

javascript - 单击时选择要输入的框值复制

javascript - HTML 表单 POST 到直接打印页面

javascript - 提交后 Controller 中的 formCollection 为空

php - 生成标记、jquery 或 php 哪个更快?

jquery - jqgrid - 如果列模型采用 JSON 响应,如何将单元格数据映射到列模型?

javascript - 在 HTML5 Canvas 上删除部分图像?

javascript - 使用 jquery 和 data 属性将内容加载到 div 中

java - 使用字符串数组和打印文件输出出现 NullPointerException?