首页 新闻 赞助 找找看

JS获取元素对象后,给对象绑定事件,如何给事件处理程序传参呢?

0
悬赏园豆:5 [已解决问题] 解决于 2022-05-02 18:33
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件的演示代码</title>

</head>
<body>
<input id="bt" type="button" value="test">
<script !src="">
    function fun(a) {
        alert("hello" + a);
    }

    var bt = document.getElementById("bt");
    // 只能指定函数对象
    bt.onclick = fun;// 如何传参呢?
</script>
<!--onclick 属性只能指定代码-->
<input type="button" value="test2" onclick="fun();">
</body>
</html>

如上代码,bt.onclick = 如何调用函数fun(a),并传一个参数呢?

bt.onclick = fun(2); 这样是不行的,因为页面加载时就直接调函数fun(a)了。bt.onclick = "fun(2)"; 这样也不行,点击无效

liaowenxiong的主页 liaowenxiong | 初学一级 | 园豆:33
提问于:2021-12-01 20:54
< >
分享
最佳答案
1

不清楚你要实现什么效果,这样行吗

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件的演示代码</title>
</head>
<body>
    <input id="bt" type="button" value="test">
    <script !src="">
        var a = "aaa";
        function fun() {
            alert("hello + " + a);
        }
        var bt = document.getElementById("bt");
        // 只能指定函数对象
        bt.onclick = fun;// 如何传参呢?
    </script>
    <!--onclick 属性只能指定代码-->
    <input type="button" value="test2" onclick="fun();">
</body>
</html>

或者这样

<!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 !src=""> 
        function fun(a) {
            alert("hello + " + a);
        } 
    </script>
    <!--onclick 属性只能指定代码-->
    <input type="button" value="test2" onclick="fun('bbb');">
</body>
</html>
收获园豆:5
WmW | 菜鸟二级 |园豆:424 | 2021-12-02 09:21

找到答案了。
应该这样:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script !src="">
        function fun(a) {
            alert(a);
        }

        window.onload = function () {
            var bt = document.getElementById("test");
            bt.onclick = () => {
                fun(1)
            };
        };
    </script>
</head>
<body>
<input id="test" type="button" value="test">
</body>
</html>
liaowenxiong | 园豆:33 (初学一级) | 2021-12-03 15:13
其他回答(2)
0

怎么会直接加载呢

/微笑 | 园豆:202 (菜鸟二级) | 2021-12-01 22:36
0

同 没看明白你想要干什么。。。

顾晓北 | 园豆:10844 (专家六级) | 2021-12-02 10:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册