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使用onclick事件改变选中行的颜色
Dec 30 Javascript
jQuery实现统计复选框选中数量
Nov 24 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
Javascript非构造函数的继承
Apr 27 Javascript
学习JavaScript设计模式之迭代器模式
Jan 19 Javascript
JavaScript中循环遍历Array与Map的方法小结
Mar 12 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
基于JavaScript实现滑动门效果
Mar 16 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
vue地区选择组件教程详解
May 04 Javascript
es6 filter() 数组过滤方法总结
Apr 03 Javascript
Electron-vue开发的客户端支付收款工具的实现
May 24 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
php生成随机颜色的方法
2014/11/13 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
python中web框架的自定义创建
2019/09/08 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
怎么写自荐书范文
2014/02/12 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
会计专业导师推荐信
2014/03/08 职场文书
工程质量承诺书范文
2014/03/27 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
小学信息技术教学反思
2016/02/16 职场文书
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS