我想附加来自字符串的事件。我遇到的问题是函数名不是作为字符串传入的,而是在函数被调用时编译,导致未定义的变量错误(temp)。在函数声明而不是运行时分析所有变量
function someFun(arg) {
alert(arg) ;
}
temp[0] = "someFunc(test)" ;//this would be a sample of the incoming HTML
var x = 0 ;
while(temp[x] != '') {
temp[x] = temp[x].replace(')','').split('(') ;//remove paranthesis and separate func name from args
temp[x][1] = temp[x][1].split(',') ;//turn string of args into array
func = function() { window[temp[x][0]].apply(el,[]) ; }
el.addEventListener('click',func,false) ;
x++ ;
}
如果我不使用温度[X] [0](这将是“someFunc”),但在用于方法。适用一个字符串,而传递(在这种情况下。适用(“someFunc” ... ))直接我没有问题,该函数将按预期与onClick调用。否则,当我点击元素埃尔我得到一个错误,温度没有定义。
我想我们需要更多的信息来说明你正在做什么,如果我们知道更多的话,实现你的目标可能会有一点点不同。 – ctcherry 2012-07-31 05:50:43
我试图发送一个像HTML一样写的字符串,并且让我的JavaScript解析器创建所有元素并添加像.innerHTML那样的属性+事件。在这种情况下,我试图将onClick事件附加到元素el。 – 2012-07-31 05:56:33
请使用相关的代码和输入/输出示例更新您的问题,并解释为什么你在做什么你在做什么 – mplungjan 2012-07-31 05:57:04