Javascript 传递函数表达式以用作按钮的onclick处理程序
对于按钮,我需要在运行时设置此调用的函数以及该调用中使用的值。 我可以这样做:Javascript 传递函数表达式以用作按钮的onclick处理程序,javascript,function-expression,Javascript,Function Expression,对于按钮,我需要在运行时设置此调用的函数以及该调用中使用的值。 我可以这样做: var myfunction = /* ... */ var myvalue = /* ... */ button.setAttribute ("onclick", myfunction + "('" + myvalue + "')"); 如果我尝试改为: button.setAttribute ("onclick", function () { myfunction(myvalue)); 萤火虫给了我一个机会
var myfunction = /* ... */
var myvalue = /* ... */
button.setAttribute ("onclick", myfunction + "('" + myvalue + "')");
如果我尝试改为:
button.setAttribute ("onclick", function () { myfunction(myvalue));
萤火虫给了我一个机会
“函数语句需要一个名称”
尽管如此,据我所知,我在这里使用的是一个函数表达式。您缺少一个右大括号
button.setAttribute(“onclick”,function(){myfunction(myvalue));
应该是
button.setAttribute(“onclick”,function(){myfunction(myvalue);});
但是您可能不想使用setAttribute来设置按钮的onclick,请尝试
button.onclick=function(){myfunction(myvalue);};
,相反,您缺少了一个右括号
button.onclick = function() {
myfunction(myvalue);
}
button.setAttribute(“onclick”,function(){myfunction(myvalue));
应该是
button.setAttribute(“onclick”,function(){myfunction(myvalue);});
但是您可能不想使用setAttribute来设置按钮的onclick,请改为尝试button.onclick=function(){myfunction(myvalue);};
button.onclick = function() {
myfunction(myvalue);
}
不过,使用以下选项会更好:
button.addEventListener('click', function() {
myfunction(myvalue);
}, false);
不过,使用以下选项会更好:
button.addEventListener('click', function() {
myfunction(myvalue);
}, false);
如果您正在考虑纯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);
请注意(要求代码>附件事件< /代码>和<代码> AdvestListListAu/<代码>不能在IE上工作,并且在其他浏览器上工作。因此,如果您考虑纯JavaScript:
,则必须考虑这两个函数使其为强>跨浏览器支持< /强> < P>。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);
请注意(要求代码>附件事件< /代码>和<代码> AdvestListListAu/<代码>在IE上不工作,在其他浏览器上工作。因此,您必须考虑这两个函数,使其“强”>跨浏览器支持< /强> ./p>使用。OnCouter是很好的。但是有一个问题。最近的IEs确实支持addEventListener。使用.onclick很好-当您需要多个函数时,它自然会交叉浏览,但您会遇到问题。最近的IEs确实支持addEventListener。