Javascript基础知识(二)事件


Posted in Javascript onSeptember 29, 2014

Event对象:(event对象是window对象的属性,当事件发生时,同时产生event对象,事件结束,event对象消失)

IE中:window.event;//获取对象

DOM中:argument[0];//获取对象

IE中Event对象常用的属性方法:

1.clientX:事件发生时,鼠标指针在客户区(不包括工具栏,滚动条等)的X坐标;

2.clientY:事件发生时,鼠标指针在客户区(不包括工具栏,滚动条等)的Y坐标;

3.keyCode:对于keyCode事件,指示按下的键的Unicode字符,对于keydown/keyup事件,指示按下的键盘是数字表示器(获得按键的数值);

4.offsetX:鼠标指针相对于引发事件的对象的X坐标;

5.offsetY:鼠标指针相对于引发事件的对象的Y坐标;

6.srcElement:导致事件发生的元素;

DOM中event对象常用的属性方法:

1.clientX;

2.clientY;

3.pageX;鼠标指针相对于页面的X坐标;

4.pageY;鼠标指针相对于页面的Y坐标;

5.StopPropagation:调用该方法可以阻止事件的进一步传播(冒泡);

6.target:触发的事件元素/对象;

7.type:事件的名称;

两种event对象的相同点和不同点

相同点:

1.获取事件类型;

2.获取键盘代码(keydown/keyup事件);

3.检测Shift,Alt,Ctrl;

4.获取客户区坐标;

5.获取屏幕坐标;

不同点:

1.获取目标;

//IE:var oTarget=oEvent.srcElement;

//DOM: var oTarget=oEvent.target;

2.获取字符码;

//IE: var iCharCode=oEvent.keyCode;

//DOM: var iCharCode=oEvent.charCode;

3.阻止事件的默认行为;

//IE: oEvent.returnValue=false;

//DOM: oEvent.preventDefault;

4.终止冒泡:

//IE:oEvent.cancelBubble=true;

//DOM:oEvent.stopPropagation

事件类型:

一.鼠标事件:

onmouseover:当鼠标移入时;

onmouseout:当鼠标移出时;

onmousedown:当按下鼠标时;

onmouseup:当抬起鼠标时;

onclick:点击鼠标左键时;

ondblclick:双击鼠标左键时;

二.键盘事件:

onkeydown:当用户在键盘上按下一个键时发生;

onkeyup:当用户释放一个按下的键时发生;

keypress:当用户一直按着键不放时;

三.HTML事件:

onload:加载页面时;

onunload:卸载页面时;

abort:当用户终止装载进程之前,如果他还没有被完全转载,发生abort事件

error:javascript发生错误时,产生的事件;

select:在一个input或者textarea中,用户选择字符时,触发的select事件

change:在一个input或者textarea中,当它失去焦点,在select中触发change事件

submit:当表单被提交时,触发submit事件;

reset:重置

resize:当窗口或框架尺寸调整时触发的事件;

scroll:当用户滚动或有滚动条时触发的事件;

focus:失去焦点时;

blur:获得焦点时;

Javascript的事件模型

1.Javascript事件模型:1.冒泡类型: <input type="button">当用户点击按钮时:input-body-html-document-window(从下往上冒泡)IE浏览器只是用冒泡

    2.捕获类型: <input type="button">当用户点击按钮时:window-document-html-body-input (从上往下)

经过ECMA标准化后,其他浏览器都支持两种类型,捕获先发生。

2.传统事件书写的三种方式:

1.<input type="button" onclick="alert('helloworld!')">

2.<input type="button onclick=name1()">======<script>function name1(){alert('helloword!');}</script> //有名函数

3.<input type="button" id="input1">  //匿名函数

<script>

 Var button1=document.getElementById("input1");

 button1.onclick=funtion(){

 alert('helloword!')

 }

</script>

3.现代事件书写方式:

<input type="button" id="input1">  //IE中添加事件
<script>

 var fnclick(){

 alert("我被点击了")

 }

 var Oinput=document.getElementById("input1");

 Oinput.attachEvent("onclick",fnclick);

 --------------------------------------

 Oinput.detachEvent("onclick",fnclick);//IE中删除事件

</script>
<input type="button" id="input1">  //DOM中添加事件
<script>

 var fnclick(){

 alert("我被点击了")

 }

 var Oinput=document.getElementById("input1");

 Oinput.addEventListener("onclick",fnclick,true);

 --------------------------------------

 Oinput.removeEventListener("onclick",fnclick);//DOM中删除事件

</script>
<input type="button" id="input1"> //兼容IE和DOM添加事件
<script>

 var fnclick1=function(){alert("我被点击了")}

 var fnclick2=function(){alert("我被点击了")}

 var Oinput=document.getElementById("input1");

 if(document.attachEvent){

 Oinput.attachEvent("onclick",fnclick1)

 Oinput.attachEvent("onclick",fnclick2)

 }

 else(document.addEventListener){

 Oinput.addEventListener("click",fnclick1,true)

 Oinput.addEventListener("click",fnclick2,true)

 }

</script>
Javascript 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
jQuery UI 应用不同Theme的办法
Sep 12 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
Oct 03 Javascript
JS中showModalDialog 的使用解析
Apr 17 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
js的touch事件的实际引用
Oct 13 Javascript
jQuery判断checkbox选中状态
May 12 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
Jun 18 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
Javascript基础知识(一)核心基础语法与事件模型
Sep 29 #Javascript
Javascript表单验证要注意的事项
Sep 29 #Javascript
使用phantomjs进行网页抓取的实现代码
Sep 29 #Javascript
Javascript获取CSS伪元素属性的实现代码
Sep 28 #Javascript
js获取元素相对窗口位置的实现代码
Sep 28 #Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 #Javascript
浏览器缩放检测的js代码
Sep 28 #Javascript
You might like
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP微信红包API接口
2015/12/05 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
php中数组最简单的使用方法
2020/12/27 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
教你学会使用Python正则表达式
2017/09/07 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
python爬取网页转换为PDF文件
2018/06/07 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
python在协程中增加任务实例操作
2021/02/28 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
单位作风建设自查报告
2014/10/23 职场文书
团组织关系介绍信
2019/06/24 职场文书