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中创建类/对象的几种方法总结
Nov 29 Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
JS中传递参数的几种不同方法比较
Jan 20 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
vue实现固定位置显示功能
May 30 Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 Javascript
ES6的异步操作之promise用法和async函数的具体使用
Dec 06 Javascript
JS数组reduce()方法原理及使用技巧解析
Jul 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
对javascript和select部件的结合运用
2006/10/09 PHP
php 字符转义 注意事项
2009/05/27 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
js获取内联样式的方法
2015/01/27 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
vue实现分页栏效果
2019/06/28 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Python for i in range ()用法详解
2020/09/18 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
python实现单机五子棋
2020/08/28 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
如何利用Python 进行边缘检测
2020/10/14 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
财产保全担保书范文
2014/04/01 职场文书
2014年护理部工作总结
2014/11/14 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
关于python类SortedList详解
2021/09/04 Python
Python requests用法和django后台处理详解
2022/03/19 Python