javascript onclick设置为变量函数名

javascript onclick set to variable function name?

本文关键字:函数 变量 onclick 设置 javascript      更新时间:2023-09-26

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

我想动态地将每个选定的元素设置为在其他地方声明名称的函数。这些函数是类方法。我不知道这是否就是它不起作用的原因。

我知道这是一种时髦的猴子式的东西,但它比使用开关更可取,因为我必须解析所有的函数。

函数名称获取

// 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

我发现这不起作用。onclick是而不是设置为我想要的函数,只是语句

ini[y]();

由于y在设置完成后不再在范围内(即使是,也不能说它是正确的y,因为每次迭代它都有不同的值),我不得不把它取出来,让它动态地确定函数。

使用此:

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设置为类方法。