事件绑定的第二种形式&&call方法

本文介绍了在不同浏览器环境下如何为DOM元素绑定事件监听器,并解释了标准与IE浏览器中事件绑定的区别,包括事件流的不同阶段及事件处理函数中this关键字的指向问题。此外,还提供了一个兼容多种浏览器的事件绑定方法。

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

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script >
        window.onload = function () {


            //给一个对象的同一个事件绑定多个不同的函数;
            /*
             ie :obj.attachEvent(事件名称,事件函数)
                1.没有捕获
                2.事件名称有on
                3.事件函数执行顺序:标准ie->正序  非标准ie->倒序
                4.this指向window
             标准 :obj.addEventListener(事件名称,事件函数,是否捕获)
                1.有捕获
                2.没有on
                3.正序
                4.this指向触发该事件的对象
                是否捕获:,默认是false  false:冒泡  true:捕获
            */


            /*
                call 函数下的一个方法,call方法第一个参数可以改变函数执行过程中的内部this的指向
            */
            function fn1(){alert(this)}
            function fn2(){alert(this)}

            //document.onclick = fn1;
            //document.onclick = fn2;
//            document.attachEvent("onclick",fn1);
//            document.attachEvent("onclick",fn2);

           // document.addEventListener("click",fn1,false);
            //document.addEventListener("click",fn2,false);

            bind(document,"click",fn1);

            function bind(obj,evName,func){
                if(obj.addEventListener){
                    obj.addEventListener(evName,func,false);
                }else{
                    obj.attachEvent("on" + evName,function(){
                        func.call(obj);
                    })
                }
            }

        }
    </script>
</head>
<body>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值