事件处理

【onClick】单击事件、【onMouseOver】鼠标经过事件、【onMouseOut】鼠标移出事件、【onChange】文本内容改变事件、【onSelect】文本被框选事件、【onFoucus】得到光标事件、【onBlur】光标失去事件、【onLoad】网页加载事件(在body标签中添加)、【onUnload】网页关闭事件(在body标签中添加或者使用window.onload=function(){})

事件注册及监听

1、 DOM0级事件处理

在标签中添加onClick或其他事件的属性并赋值为JS的自定义方法名

  1. onClick="dongfun(20)"

两种方法在事件中得到事件的标签对象:

  1. <div id="divid" onMouseOver="overbut(this)" onMouseOut="outbut()">东小东</div>
  2. <script>
  3. //通过参数传递对象
  4. function overbut(obj){
  5. obj.innerHTML="事件触发发,鼠标在我的范围";
  6. }
  7. //通过ID查找到对象
  8. function outbut(){
  9. document.getElementById("divid").innerHTML="再见见";
  10. }
  11. </script>

内容改变监听:

方法一

  1. <input onChange="this.style.backgroundColor='red'">

方法二

  1. <input id="inid" onChange="inputbut(this)">
  2. <script>
  3. function inputbut(obj){
  4. obj.style.backgroundColor="green";//更改样式
  5. }
  6. </script>

2、 DOM1级事件处理

通过标签或者ID寻找到对象,进行事件监听,一个事件只能对应一个事件处理函数,在HTML中不用进行注册

  1. function dongfunx(){
  2. alert("东小东弹框");
  3. }
  4. //找到对象
  5. var h1objx=document.getElementsByTagName("h1")[0];
  6. //注册事件
  7. h1objx.onclick=dongfunx;
  8. //清除事件
  9. h1objx.onclick=null;

3、 DOM2级事件处理

通过标签或者ID寻找到对象,进行事件监听,一个事件只能对应多个事件处理函数,在HTML中不用进行注册

  1. //通过ID找到标签对象
  2. divobjx=document.getElementById("divid");
  3.  
  4. //添加监听事件,可以添加多个相同或者不同的事件
  5. //参数(事件名,处理函数名),其中事件名是普通事件中去掉“on”前缀
  6. divobjx.addEventListener("click",onck1);
  7. divobjx.addEventListener("click",onck2);
  8.  
  9. //事件处理函数
  10. function onck1(){
  11. alert("----- onck1 -----");
  12. }
  13. function onck2(){
  14. alert("----- onck2 -----");
  15. }
  16.  
  17. //移除点击事件
  18. divobjx.removeEventListener("click",onck1);

匿名方法实现

  1. divobjx=document.getElementById("divid");
  2. divobjx.addEventListener("click",function(){
  3. //执行操作内容
  4. alert("----------");
  5. });

补充:

阻止HTML的默认事件

  1. <a href="https://www.cnblogs.com/dongxiaodong/">跳转</a>
  2. <script>
  3. function dongfunx(eventx){
  4. eventx.preventDefault();//阻止默认事件,不进行跳转
  5. }
  6. //找到对象
  7. var aobjx=document.getElementsByTagName("a")[0];
  8. //注册事件
  9. aobjx.onclick=dongfunx;
  10. </script>

页面加载完毕监听:

  1. window.onload=function(){
  2. alert("页面加载完毕");
  3. }

异常捕获

如果程序执行时遇到异常且未进行异常捕获,则程序将终止执行,如果有异常捕获,则可以继续执行异常以下的代码。

捕获所有异常:

  1. try{
  2. //alert(jj);//未定义变量异常
  3. throw("东小东异常");//手动抛出异常,参数为异常内容
  4. }catch(e){
  5. alert("捕获的错误:"+e);
  6. }

JavaScript的事件及异常捕获的更多相关文章

  1. JavaScript事件——冒泡、捕获

    本节要点:1.干预系统的事件处理机制 (一)DOM事件流 (二)停止事件冒泡 (三)阻止事件的默认行为 1.干预系统的事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTM ...

  2. JavaScript异常捕获

    理论准备 ★   异常捕获 △ 异常:当JavaScript引擎执行JavaScript代码时,发生了错误,导致程序停止运行: △ 异常抛出:当异常产生,并且这个异常生成一个错误信息: △ 异常捕获: ...

  3. Javascript异步请求你能捕获到异常吗?

    Javascript异步请求你能捕获到异常吗? 异常处理是程序发布之前必须要解决的问题,不经过异常处理的应用会让用户对产品失去信心.在异常处理中,我们一贯的做法是按照函数调用的次序,将异常从数据访问层 ...

  4. JavaScript的事件监听、捕获和冒泡

    在前端开发中,我们经常需要对某些事件进行监听.这样只要在指定的元素上触发了该事件,就会执行一个回调函数来进行相关的操作. 而JavaScript中事件监听的方法总共有三种,分别如下: element. ...

  5. [JavaScript] JavaScript事件注册,事件委托,冒泡,捕获,事件流

    面试题 event 事件 事件委托是什么? 如何阻止事件冒泡,阻止默认事件呢? Javascript 的事件流模型都有什么? 事件绑定和普通事件有什么区别? Event 对象 Event 对象,当事件 ...

  6. javascript学习笔记(五):异常捕获和事件处理

    异常捕获 Try{ 发生异常的代码块 }catch(err){ 异常信息处理 } <!DOCTYPE html> <html> <head lang="en&q ...

  7. Javascript的异常捕获机制

    這個異常處理機制,之前也只是,但是沒有怎麼用過,用了一次后發現還可以, 和java,python的異常處理機制也很相似 Javascript的异常捕获机制 1.1 基本的try…catch语句 ES3 ...

  8. JavaScript(3)---事件冒泡、事件捕获

    JavaScript(3)---事件冒泡与事件捕获 一.理解冒泡与捕获 假设有这么一段代码 <body> <div><p>标签</p> </div ...

  9. JavaScript事件起泡与捕获

    // 向 <div> 元素添加事件句柄 document.getElementById("myDIV").addEventListener("mousemov ...

随机推荐

  1. Golang的模块管理Module

    Golang 1.11版本终于支持了官方的模块依赖管理功能,1.11以前想要实现依赖管理只能够通过借助第三方库来实现,1.11以前的版本Golang项目必须依赖以GOPATH,从当前版本开始Golan ...

  2. comutil

    使用该工具库,通常包含comsuppw.lib.kernel32.lib. _com_util::ConvertBSTRToString 将VT_BSTR类型转换为普通字符串.

  3. FTP出现PORT模式成功, 请更新你的站点配置文件

    最近用FTP连接站点,经常出现连接不上或者连接失败,提示以PASV模式连接失败,正在使用PORT模式连接,最后才能连接成功,连接时间也是相当长,又慢又不稳定.   工具/原料   FlashFXP等F ...

  4. 【安富莱】【RL-TCPnet网络教程】第8章 RL-TCPnet网络协议栈移植(RTX)

    第8章        RL-TCPnet网络协议栈移植(RTX) 本章教程为大家讲解RL-TCPnet网络协议栈的RTX操作系统移植方式,学习了第6章讲解的底层驱动接口函数之后,移植就比较容易了,主要 ...

  5. Zookeeper+Dubbo+SpringMVC环境搭建

    项目码云GIT地址:https://gitee.com/xshuai/dubbo/ 开发工具 MyEclipse 10.7 JDK 1.7 容器 Tomcat 8(运行dubbo) zookeeper ...

  6. 发一些Java面试题,上海尚学堂Java学员面试遇到的真题,值得学习

    1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java AP ...

  7. [SQL]LeetCode197. 上升的温度 | Rising Temperature

    SQL架构 Create table If Not Exists Weather (Id int, RecordDate date, Temperature int) Truncate table W ...

  8. [Swift]LeetCode598. 范围求和 II | Range Addition II

    Given an m * n matrix M initialized with all 0's and several update operations. Operations are repre ...

  9. [Swift]LeetCode807. 保持城市天际线 | Max Increase to Keep City Skyline

    In a 2 dimensional array grid, each value grid[i][j]represents the height of a building located ther ...

  10. iOS模拟器使用

    在iOS开发过程中一直都是使用模拟器进行调试,在模拟器上有很多不适应的地方,但是其实在模拟器上也有很多其他的功能,在本文中主要对模拟器的一些基本功能进行总结一下. 1 首先,我们了解一下模拟器中常用的 ...