JavaScript-5-事件触发机制、三种触发方式

本文介绍了JavaScript中的事件触发机制,包括事件源、常见事件类型如onclick和ondblclick。详细讲解了三种触发方式:行内绑定(οnclick属性)、事件监听(addEventListener)和动态绑定(obj.οnclick=func)。强调了addEventListener的兼容性问题,以及动态绑定时需要注意函数引用与调用的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 事件触发机制

    1. 事件源【就是网页中的标签】 button
    2. 事件 onclick 单击 ondblclick 双击
    3. 行为【js】 show()
  2. 触发方式一(行内绑定):标签内 οnclick=“func()” 没有event

    <body ondblclick="show()">
    
    <button type="button" onclick="change()" id="btn">点击</button>
    
    <script>
        function show() {
            /* docuent.write() 重新绘制网页 */
            // document.write('点击。。');
            alert('点击');
        }
        function change(){
            var b=document.getElementById('btn');
            b.innerText='登录';
        }
    </script>
    
    </body>
    
  3. 触发方式二(事件监听):添加事件监听 addEventListener() 有event

    兼容性不好,ie是attachEvent()

    <body>
    
    <button type="button" id="btn">点击</button>
    
    <script>
        var b=document.getElementById('btn');
        b.addEventListener('click',function (change) {
            b.innerText='登录';
        },true);
    </script>
    
    </body>
    

    注意:不可以b.addEventListener(‘click’,change(),true);,这样没用

    【这里只是简要简绍一下,后面到事件再详细说。。。。】

  4. 触发方式三(动态绑定):obj.οnclick=func; 有event

    匿名函数:

    <body>
    
    <button type="button" id="btn">点击</button>
    <script>
        var btn=document.getElementById('btn');
        btn.onclick = function(e){
            btn.innerText='登录';
            alert(e.target.value);  /* e.target 监听目标 */ /* e == event */
        }
    </script>
    
    </body>
    

    普通函数:

    <body>
    
    <button type="button" id="btn">点击</button>
    <script>
        var btn=document.getElementById('btn');
        btn.onclick = change;
        function change(){
            btn.innerText='登录';
        }
    </script>
    
    </body>
    

    **ps:**这里obj.οnclick=func; 即函数地址,而不是调用函数,即上述 btn.οnclick=change()会出错,提前改变为登录,不需要触发。与 οnclick="change()"区别开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值