如何在JS中给事件处理程序传递参数?
js 给事件处理程序传参
在 js 中获取元素对象后,可以通过绑定事件的方式为对象添加特定行为。然而,在绑定事件时,可能需要给事件处理程序传递参数。本文将介绍如何在 bt.onclick 中调用函数 fun(a) 并传递参数。
方法 1:使用闭包
闭包可以将外部变量的值传递到内部函数中。通过在事件处理程序中使用闭包,可以访问存在于外部作用域中的参数。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>事件的演示代码</title> </head> <body> <input id="bt" type="button" value="test"> <script> var a = "aaa"; function fun() { alert("hello + " + a); } var bt = document.getelementbyid("bt"); bt.onclick = fun; </script> <input type="button" value="test2" onclick="fun('bbb')"> </body> </html>
在上面的代码中,变量 a 存储在全局作用域中。当 bt 元素的 onclick 事件被触发时,闭包函数 fun 被调用,它可以访问外部变量 a。
方法 2:直接传递参数
如果只需要传递单个参数,可以将参数直接传递到 onclick 事件处理程序中。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件的演示代码</title> </head> <body> <input id="bt" type="button" value="test" onclick="fun('aaa')"> <script> function fun(a) { alert("hello + " + a); } </script> <input type="button" value="test2" onclick="fun('bbb')"> </body> </html>
在上面的代码中,参数 'aaa' 直接传递到 fun 函数。这种方法简单高效,但无法传递多个参数。
以上就是如何在JS中给事件处理程序传递参数?的详细内容,更多请关注其它相关文章!