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 相关文章推荐
jquery 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
jquery实现select下拉框美化特效代码分享
Aug 18 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
Aug 10 Javascript
vue2.0结合Element-ui实战案例
Mar 06 Javascript
详解JavaScript的变量
Apr 04 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
在VUE中使用lodash的debounce和throttle操作
Nov 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
二招解决php乱码问题
2012/03/25 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
提高网站信任度的技巧
2008/10/17 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
js中值引用和地址引用实例分析
2019/06/21 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
学习2014年全国两会心得体会
2014/03/12 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Python Numpy之linspace用法说明
2021/04/17 Python
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
pytorch实现手写数字图片识别
2021/05/20 Python
Python 发送SMTP邮件的简单教程
2021/06/24 Python