是否可以使用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
答案 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直接设置为类方法。