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 相关文章推荐
可实现多表单提交的javascript函数
Aug 01 Javascript
js中符号转意问题示例探讨
Aug 19 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
Sep 19 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
原生js实现回复评论功能
Jan 18 Javascript
原生JavaScrpit中异步请求Ajax实现方法
Nov 03 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 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中构造函数和析构函数解析
2014/10/10 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
JS DOM 操作实现代码
2010/08/01 Javascript
JavaScript 数组详解
2013/10/10 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
对Python函数设计规范详解
2019/07/19 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
Django admin组件的使用
2020/10/24 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
中专自我鉴定
2014/02/05 职场文书
地球上的星星观后感
2015/06/02 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers