热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript中几个主要的知识点(2)DOM事宜

JavaScript中几个最主要的大知识点面向对象DOM事宜异步交互ajax事宜事宜就是文档和浏览器的霎时交互行动1.事宜范例点击:click滚轮:scroll滑动:move进入:

Javascript中几个最主要的大知识点

  1. 面向对象

  2. DOM事宜

  3. 异步交互ajax

事宜

事宜就是文档和浏览器的霎时交互行动

1.事宜范例
  • 点击: click

  • 滚轮: scroll

  • 滑动: move

  • 进入: enter

  • 加载: load

2.事宜机制
  • 事宜的监听(事宜的绑定)

    • 经由过程on+事宜名 这类范例绑定的事宜都叫做DOM0级事宜

    • DOM0级事宜,同一个元素的同一个事宜监听,绑定的触发运转函数,不能反复绑定,有且只能绑定一回,下一次绑定的会将上一次的给覆蓋掉

    • 事宜设为null,移除事宜的监听

    • 监听事宜,不仅是浏览器的一种机制,也是浏览器给予DOM文档元素的属性,即事宜的监听是时刻存在的,然则事宜触发时刻运转的处置惩罚函数,是我们本身定义的

  • 事宜的触发:触发事宜时刻运转绑定的处置惩罚函数

JS中的事宜,实在是以一个类的情势存在的,每一个绑定的事宜实在都是这个类的一个实例 (援用数据范例的对象) ,浏览器会给我们的一切的事宜触发函数中,默许传入一个实参,就是当前事宜的事宜对象(event),在这个事宜对象中,保存着当前事宜一切信息

事宜对象存在于一切的事宜的触发处置惩罚函数中,事宜对象中有一些经常运用的属性,用于掌握交互中的结果。

  • clientX/clientY:鼠标点击点对应屏幕左上角的位置信息

  • pageX/pageY:鼠标点击的点对应body左上角的位置信息

  • keyCode:键盘事宜中键盘对应的键盘码

    • Backspace: keyCode:8 删除键

    • enter: keyCode:13 回车键

    • space: keyCode:32 空格键

    • arrowLeft/Up/Right/Down: keyCode:37 / 38 / 39 / 40 小键盘左 / 上 / 右 / 下

事宜对象还存在一些兼容性:在规范浏览器下他的事宜对象存在于当前函数的作用域中,而在ie中存在于window作用域下。

//处置惩罚事宜对象的兼容性写法
event=event|| window.event;
//处置惩罚事宜源的兼容性写法
event.target || event.srcElement
//处置惩罚事宜冒泡的兼容性写法
event.stopPropagation() || event.cancelBubble=true;
//阻挠默许行动的兼容写法
event.preventDefault() || event.returnValue=false;

3.事宜托付的头脑

有时刻我们需要对一个DOM元素下的多个子元素绑定雷同的事宜,比如说为表格增加可删除一行的功用,平常的要领是轮回绑定事宜,然则如许的方法明显机能不高,这时刻就能够只为其父元素绑定事宜,经由过程事宜托付来完成其多个子元素的雷同事宜结果。

事宜托付的道理为:依据事宜流的流传机制,我们在父级标签上监听事宜,经由过程捕捉和冒泡机制,在触发子集的事宜的时刻,冒泡流传给父级,来触发父级的事宜处置惩罚函数

那末什么是事宜得出流传机制呢?总的来说能够把事宜流的流传机制分为两到三个阶段:

  1. 事宜捕捉阶段:从DOM最外层标签HTML最先往子元素捕捉事宜源

  2. 捕捉到事宜对象(能够归到第一阶段)

  3. 冒泡流传:从捕捉到事宜源的元素最先往父级元素举行事宜冒泡,DOM0级事宜中,事宜绑定函数的触发都发生在冒泡阶段

DOM2级事宜

DOM2级事宜就是DOM0级事宜的优化,同一个文档对象同一个事宜,能够绑定多个事宜处置惩罚顺序,还能够掌握事宜处置惩罚顺序的实行阶段在捕捉或许冒泡阶段实行。

1.在规范浏览器中,绑定DOM2级事宜的要领为:addEventListener()

  • 第一个参数为事宜范例:[String] click / mouseover / blur …

  • 第二个参数为事宜处置惩罚函数:[Function] listener

  • 第三个参数为事宜处置惩罚函数是不是在冒泡阶段实行:[Boolean] ture/false

假如直接触发的是事宜源的监听事宜,没有事宜托付的情况下,则冒泡和捕捉会同时发生,此时会依据函数的誊写先后顺序实行事宜处置惩罚顺序

事宜绑定函数中的this指向当前绑定事宜的DOM对象,this还即是currentTarget。
运用 removeEventListener() 来移除事宜,参数必需与要移除的事宜处置惩罚函数地点指针雷同。

2.在低版本IE浏览器(6-8)中,绑定DOM2级事宜的要领为:attachEvent()

IE中的DOM2级事宜的事宜处置惩罚顺序,都是在冒泡阶段实行的。

  • 第一个参数为事宜范例:[String] onclick / onmouseover / onblur …

  • 第二个参数为事宜处置惩罚顺序::[Function] listener

IE下DOM2级事宜的处置惩罚函数是绑定在全局(window)下,所以其内部this指向window,IE下DOM二级事宜还存在反复实行屡次雷同的处置惩罚函数和函数实行乱序的题目,能够用 定阅 – 宣布 形式处理这些兼容性题目。
运用detachEvent()来移除事宜,参数一样必需与要移除的事宜地点指针雷同


推荐阅读
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • 为开发者提供了一系列实用的参考网站和资源链接,包括HTML速查手册( 和 ),帮助开发者快速查找和学习相关技术知识。此外,还涵盖了其他重要的开发工具和文档,为编程工作提供全面支持。 ... [详细]
author-avatar
手机用户2502856553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有