最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • JS全解(八)DOM事件

    正文概述 掘金(没故事的燕同学)   2020-12-16   425

    我的GitHub主页

    DOM 事件委托

    JS全解(八)DOM事件

    点击事件引发的纠纷

    先从一个简单的点击事件开始了解, 有这样一个点击事件:

    JS全解(八)DOM事件

    • 点击文字,算不算点击儿子?
    • 点击文字,算不算点击爸爸?
    • 点击文字,算不算点击爷爷?

    答案:都算

    答案:都行

    IE5认为先调fnEr,网景认为先调fnYe,然后掐上了,最后闹到了W3C。

    和事佬W3C

    2002年,W3C发布标准

    JS全解(八)DOM事件

    术语

    JS全解(八)DOM事件

    JS全解(八)DOM事件

    示意图

    JS全解(八)DOM事件

    addEventListener

    • 事件绑定API

    JS全解(八)DOM事件

    • 如果bool不传或者为falsy

    JS全解(八)DOM事件

    • 如果bool为true

    JS全解(八)DOM事件

    target v.s.currentTarget

    • 区别
    1. e.target一用户操作的元素
    2. e.currentTarget-程序员监听的元素
    3. this是e.currentTarget,我个人不推荐使用它
    • 举例

    div>span{文字},用户点击文字

    e.target就是span

    e.currentTarget就是div

    DOM事件级别

    DOM级别一共可以分为四个级别:DOM0级、DOM1级、DOM2级和DOM3级。而DOM事件分为3个级别:DOM 0级事件处理,DOM 2级事件处理和DOM 3级事件处理。由于DOM 1级中没有事件的相关内容,所以没有DOM 1级事件。

    DOM 0级事件

    el.οnclick=function(){}
    
    let btn = document.getElementById('btn');  
              btn.onclick=function(){
              alert(this.innerHTML);
    }
    

    当希望为同一个元素/标签绑定多个同类型事件的时候(如给上面的这个btn元素绑定3个点击事件),是不被允许的。DOM0事件绑定,给元素的事件行为绑定方法,这些方法都是在当前元素事件行为的冒泡阶段(或者目标阶段)执行的。

    DOM 2级事件

    el.addEventListener(event-name, callback, useCapture)

    event-name: 事件名称,可以是标准的DOM事件

    callback: 回调函数,当事件触发时,函数会被注入一个参数为当前的事件对象 event

    useCapture: 默认是false,代表事件句柄在冒泡阶段执行

    let btn = document.getElementById('btn');
    btn.addEventListener("click", test, false);
    function test(e){
    	e = e || window.event;
        alert((e.target || e.srcElement).innerHTML);
        btn.removeEventListener("click", test)
    }
    //IE9-:attachEvent()与detachEvent()。
    //IE9+/chrom/FF:addEventListener()和removeEventListener()
    

    IE9以下的IE浏览器不支持 addEventListener()和removeEventListener(),使用 attachEvent()与detachEvent() 代替,因为IE9以下是不支持事件捕获的,所以也没有第三个参数,第一个事件名称前要加on。

    DOM 3级事件

    在DOM 2级事件的基础上添加了更多的事件类型。

    UI事件,当用户与页面上的元素交互时触发,如:load、scroll

    焦点事件,当元素获得或失去焦点时触发,如:blur、focus

    鼠标事件,当用户通过鼠标在页面执行操作时触发如:dblclick、mouseup

    滚轮事件,当使用鼠标滚轮或类似设备时触发,如:mousewheel

    文本事件,当在文档中输入文本时触发,如:textInput

    键盘事件,当用户通过键盘在页面上执行操作时触发,如:keydown、keypress

    合成事件,当为IME(输入法编辑器)输入字符时触发,如:compositionstart

    变动事件,当底层DOM结构发生变化时触发,如:DOMsubtreeModified

    同时DOM3级事件也允许使用者自定义一些事件。

    JS全解(八)DOM事件


    起源地下载网 » JS全解(八)DOM事件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元