对于一个按钮,我需要在运行时设置此调用的函数以及该调用中使用的值。 我可以这样做:
var myfunction = /* ... */
var myvalue = /* ... */
button.setAttribute ("onclick", myfunction + "('" + myvalue + "')");
如果我改为尝试:
button.setAttribute ("onclick", function () { myfunction(myvalue));
Firebug给了我一个
“函数语句需要名称”
尽管据我所知,我在这里使用的是函数表达式。
答案 0 :(得分:2)
button.onclick = function() {
myfunction(myvalue);
}
使用proper event registration method会更好:
button.addEventListener('click', function() {
myfunction(myvalue);
}, false);
答案 1 :(得分:0)
你错过了一个结束括号。
button.setAttribute ("onclick", function () { myfunction(myvalue));
应该是
button.setAttribute ("onclick", function () { myfunction(myvalue); });
但您可能不想使用setAttribute来设置按钮的onclick,请尝试使用button.onclick = function () { myfunction(myvalue); };
答案 2 :(得分:0)
如果您正在考虑使用纯JavaScript:
function attachEvent(element, event, handler)
{
if (element && element.attachEvent) {
element.attachEvent("on" + event, handler);
}
else if (element && element.addEventListener) {
element.addEventListener(event, handler, false);
}
}
用法:
attachEvent(button, "click", myFunction);
请注意,IE需要attachEvent
,而addEventListener
不适用于IE,适用于其他浏览器。因此,您必须考虑这两个功能才能使其成为跨浏览器支持。