本文介绍JavaScript中为onclick属性赋值时的两种传参方式。当方法无需参数时,可直接将函数名赋值给onclick;若需传递参数,则必须通过匿名函数包裹调用,即onclick = function() { test(param) },以避免执行时机错误导致的传参失败。
无参方法的直接赋值
第一种情况是目标方法不需要接收任何参数。此时,可以直接将函数名赋值给元素的onclick属性,无需额外包装。
具体实现代码如下:
window.onload = function() {
$('btnTest').onclick = test;
}
function test() {
alert(val);
}有参方法的匿名函数包裹
第二种情况涉及需要传递参数的方法。如果直接写成 onclick = 方法名(参数)的形式,会导致立即执行而非绑定事件,从而产生错误。正确的做法是在函数名前添加一个匿名函数包裹器。
相关代码示例如下:
window.onload = function() {
$('btnTest').onclick = function() { test(1) };
}
function test(val) {
alert(val);
}