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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
Ext面向对象开发实践(续)
Nov 18 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
JavaScript 中的日期和时间及表示标准介绍
Aug 21 Javascript
详解AngularJS中的表格使用
Jun 16 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 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获取文件后缀名的三个函数
2012/10/15 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
深入解析Python中的线程同步方法
2016/06/14 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
python 日志增量抓取实现方法
2018/04/28 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
给幼儿园老师的表扬信
2014/01/19 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
转变工作作风心得体会
2016/01/23 职场文书
个人售房合同协议书
2016/03/21 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
java开发双人五子棋游戏
2022/05/06 Java/Android