如何在JS中给事件处理程序传递参数?

如何在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中给事件处理程序传递参数?的详细内容,更多请关注其它相关文章!