JavaScript 事件绑定传参:如何给事件处理程序传参?
js事件绑定传参技巧
在javascript中,给元素对象绑定事件后如何给事件处理程序传参呢?
默认情况下,事件处理程序只能指定函数对象,无法直接传参。对于像bt.onclick = fun(2);这样的写法,虽然看上去像传参,但其实会直接在页面加载时调用函数。另一个尝试bt.onclick = "fun(2)"; 也不行,因为这样会导致点击无效。
为了实现传参,有以下两种方法:
方法一:使用闭包
这种方法通过在外部函数中定义内部函数的方式来实现传参。外部函数的参数会被传入内部函数,从而实现事件处理程序中传参。
<script !src=""> var a = "aaa"; function fun() { alert("hello + " + a); } var bt = document.getelementbyid("bt"); // 只能指定函数对象 bt.onclick = fun; // 如何传参呢? </script>
方法二:使用匿名函数
另一种方法是使用匿名函数进行传参,将需要传参的函数作为参数传入匿名函数即可。
<script !src=""> function fun(a) { alert("hello + " + a); } var bt = document.getElementById("bt"); bt.onclick = function() { fun('aaa'); }; </script>
以上就是JavaScript 事件绑定传参:如何给事件处理程序传参?的详细内容,更多请关注其它相关文章!