事件基础四

10 篇文章 0 订阅

绑定事件的第二种方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件绑定的第二种形式</title>
    <style type="text/css">

    </style>
</head>

<script type="text/javascript">

    /*
        第一种形式  obj.onclick=fn;  

        这种形式一个对象同一个事件的只能绑定一个函数,后面绑定的事件函数会覆盖前面绑定的函数
    */

    /*
        第二种形式  obj.addEventListener(事件名称,事件函数,是否捕获)

        这种形式可以给一个对象的同一个事件绑定不同的函数


        标准:obj.addEventListener(事件名称,事件函数,是否捕获)

            1)事件名称      没有 "on" 前缀

            2)是否捕获      指定事件函数在事件流进来还是出去时执行

            默认值 false   事件冒泡,表示事件函数在事件流出去时执行

                   true     事件监听,表示事件函数在事件流进来时执行

            3)事件函数中的this指向的是document

        非标准IE:obj.attachEvent(事件名称,事件函数)

            1)事件名称      有 "on" 前缀

            2)没有事件捕获

            3)事件函数中的this指向的是window

        call()方法  函数下的一个方法  call方法的第一个参数可以改变函数执过程中内部this的指向                             
    */

    function fn1(){


        alert(this);
    }

    function fn2(){


        alert(2);
    }
// document.attachEvent('onclick',fn1);
// document.attachEvent('onclick',fn2);

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

// document.attachEvent('onclick', fn1.call(document));

//兼容性解决方案
function bind(obj, evname, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evname, fn, false);
    } else {
        obj.attachEvent('on' + evname,function() {

            fn.call(obj);
        });
    }
}

bind(document,'click',fn1);
bind(document,'click',fn2);

</script>
<body>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值