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 相关文章推荐
js 金额文本框实现代码
Feb 14 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
Feb 04 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
几行js代码实现自适应
Feb 24 Javascript
Vue常用指令V-model用法
Mar 08 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
JS+CSS3实现的简易钟表效果示例
Apr 13 Javascript
vue-router的钩子函数用法实例分析
Oct 26 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中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
loading动画特效小结
2017/01/22 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
shiro授权的实现原理
2017/09/21 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
python中的闭包函数
2018/02/09 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
python学生管理系统开发
2019/01/30 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python新手如何理解循环加载模块
2020/05/29 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
英国复古服装购物网站:Collectif
2019/10/30 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
公司员工活动策划方案
2014/08/20 职场文书
生产设备维护保养制度
2015/08/06 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python