javascript 为element.onclick添加函数
有段时间没写js了。今天在编一个轮播图的demo时,想用javascript为“下一图片按钮”添加一个onclick事件,于是就写了这么一句。
var rightBtn = document.getElementById('right'); rightBtn.onclick = getFocus(pics,width);
以为大功告成,结果运行的时候发现,不仅rightBtn的click事件没有添加上,并且还自动执行了一遍getFocus。奇怪了,明明把函数完好的赋值过去了呀,参数也没有填错,怎么会出现这种错误呢。
这时候就得请度娘出马了,百度之后发现,原来函数的赋值只能用函数名,就像这样:
rightBtn.onclick = getFocus;
如果给getFocus加上括号的话,函数就会自动执行而不能正确的把函数对象赋给rightBtn.onclick。
问题找到了,可是如果不给加getFocus加括号的话,参数放在哪里?不要了吗?当然不是,解决方法如下:
rightBtn.onclick = function(){ getFocus(pics,width); };
把getFocus封装在一个匿名函数中,这样就可以实现动态给onclick事件句柄赋值,并支持参数的传递。

浙公网安备 33010602011771号