javascript onclick设置为变量函数名称?

时间:2014-11-06 04:19:24

标签: javascript onclick naming-conventions

是否可以使用JavaScript将click事件设置为变量函数名?

我想动态地将每个选定元素设置为名称在别处声明的函数。这些函数是类方法。我不知道这是不是为什么它不起作用。

我知道这是一个时髦的猴子的东西,但它更像是使用开关的替代品,我需要解析所有功能。

函数名称获取

// get last part of the string
var x = strName.split("_");
var y = x[x.length - 1];

这有效

holder[j].onclick = function(){ini['add']();};

由于某种原因,这不是

holder[j].onclick = function(){ini[y]();}; // I checked: y == 'add' in the test

1 个答案:

答案 0 :(得分:0)

我发现工作。 onclick 设置为我想要的功能,只是语句

ini[y]();

由于y在设置完成后不再在范围内(即使它已经存在,也没有说它是正确的y,因为它每次迭代都有不同的值),我&#39 ; ve必须将其拉出来以使其在运行中确定功能。

使用此:

holder[j].onclick = function(){clickMaster(this);};

然后这个:

function clickMaster(ele){
    // pull out strName based on ele
    var x = strName.split("_");
    var y = x[x.length - 1];
    ini[y]();
}

而不是仅仅尝试将onclick直接设置为类方法。