1

对于按钮,我需要在运行时设置此调用的函数以及该调用中使用的值。我可以这样做:

var myfunction = /* ... */
var myvalue = /* ... */
button.setAttribute ("onclick", myfunction + "('" + myvalue + "')");

如果我尝试改为:

button.setAttribute ("onclick", function () { myfunction(myvalue));

Firebug 给了我一个

“函数语句需要一个名称”

尽管如此,据我所知,我在这里使用了一个函数表达式。

4

3 回答 3

4
button.onclick = function() {
    myfunction(myvalue);
}

不过,使用正确的事件注册方法会更好:

button.addEventListener('click', function() {
    myfunction(myvalue);
}, false);
于 2011-12-03T10:41:11.447 回答
1

你缺少一个右括号。

button.setAttribute ("onclick", function () { myfunction(myvalue));

应该

button.setAttribute ("onclick", function () { myfunction(myvalue); });

但是您可能不想使用 setAttribute 来设置按钮的 onclick,button.onclick = function () { myfunction(myvalue); };而是尝试

于 2011-12-03T10:40:20.640 回答
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 上运行,并且可以在其他浏览器上运行。所以你必须考虑这两个功能才能使其跨浏览器支持

于 2011-12-03T11:16:14.950 回答