我正在尝试动态构建一些HTML并为链接的onclick
事件分配一个函数。这是我得到的代码......
link = document.createElement("a");
link.setAttribute("href", "#");
link.onclick = function(){someFunction(myObject.id);};
link.appendChild(document.createTextNode("Click Me!"));
我的研究表明我将函数调用包装在一个匿名函数中,就像我所做的那样。我发现的是,当这个脚本运行而不是click事件时,我的函数被调用。这似乎是一个常见的问题,但我遵循了迄今为止我发现的所有建议,但无济于事。
非常感谢任何帮助或指示。
B先生。
答案 0 :(得分:1)
也许尝试这种替代方法:
function someFunction(id) {
return function() {
alert(id);
};
}
link = document.createElement("a");
link.setAttribute("href", "#");
link.onclick = someFunction(myObject.id);
link.appendChild(document.createTextNode("Click Me!"));
答案 1 :(得分:0)
您发布的代码运行正常 - 我刚测试过它。这里有一些寻找的可能性..
一种调试方法是将该行更改为:
link.onclick = function(){alert('test'); someFunction(myObject.id);};
警报是否突然出现?我的猜测不是,建议上面的#1和#2。随意发布更多代码,我们可以在其他地方查找错误。