首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery:使用字符串作为函数(错误:字符串不是函数)

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

Stack Overflow用户
提问于 2013-04-12 21:29:32
回答 2查看 1.1K关注 0票数 0

下面的代码为单行数组中的每个给定ID生成单击函数,使用未注释的代码,我得到错误"string is not a function“。如果我取消注释已注释的代码,并注释单行数组,它确实工作得很好。然而,与我相比,我更喜欢使用单行数组的方法,原因很明显。

有人能给我一些好的建议吗?我走的路对吗?

提前谢谢。

代码语言:javascript
复制
// 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
});
EN

回答 2

Stack Overflow用户

发布于 2013-04-12 21:32:01

这在一定程度上取决于作用域,但总体思路是,您可以使用方括号表示法来获取对函数的引用并执行它。例如,以下内容:

代码语言:javascript
复制
window[value]();

假设callme函数的作用域是全局的( window对象的一个属性),则在第一次迭代中将等同于callme()

票数 3
EN

Stack Overflow用户

发布于 2013-04-12 21:34:19

您可以尝试使用eval将字符串作为函数进行求值,但在安全性方面必须小心。评估来自用户输入或表单提交的字符串可能会使您的站点容易受到cross-site scriptingsession hijacking的攻击。

示例:

代码语言:javascript
复制
eval(value + "();"); //call "value" as a function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15972673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档