JavaScript中的事件与异常捕获详析


Posted in Javascript onFebruary 24, 2019

事件处理

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

事件注册及监听

1、 DOM0级事件处理

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

onClick="dongfun(20)"

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

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

内容改变监听:

方法一

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

方法二

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

2、 DOM1级事件处理

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

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

3、 DOM2级事件处理

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

//通过ID找到标签对象
divobjx=document.getElementById("divid");
 
//添加监听事件,可以添加多个相同或者不同的事件
//参数(事件名,处理函数名),其中事件名是普通事件中去掉“on”前缀
divobjx.addEventListener("click",onck1);
divobjx.addEventListener("click",onck2);
 
//事件处理函数
function onck1(){
 alert("----- onck1 -----"); 
 }
function onck2(){
 alert("----- onck2 -----"); 
}
 
//移除点击事件
divobjx.removeEventListener("click",onck1);

匿名方法实现

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

补充:

阻止HTML的默认事件

<a href="https://www.cnblogs.com/dongxiaodong/" rel="external nofollow" >跳转</a>
<script>
 function dongfunx(eventx){
 eventx.preventDefault();//阻止默认事件,不进行跳转
 }
 //找到对象
 var aobjx=document.getElementsByTagName("a")[0];
 //注册事件
 aobjx.onclick=dongfunx;
</script>

页面加载完毕监听:

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

异常捕获

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

捕获所有异常:

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery 表单取值常用代码
Dec 22 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 Javascript
Vue.js开发环境搭建
Nov 10 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
Vue 组件注册实例详解
Feb 23 #Javascript
Vue Prop属性功能与用法实例详解
Feb 23 #Javascript
Vue自定义属性实例分析
Feb 23 #Javascript
Vue动态组件与异步组件实例详解
Feb 23 #Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
Feb 22 #Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 #Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 #Javascript
You might like
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python爬虫的工作原理
2017/03/05 Python
Python给图像添加噪声具体操作
2019/03/03 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
思想品德课教学反思
2016/02/24 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android