事件与事件流、事件监听

事件监听

1、事件的概念

        JavaScript 中每个元素都可以产生触发JavaScript 函数的事件。我们可以认为事件可以被JavaScript侦测到的一种行为。

2、事件流

        事件流主要分为冒泡型事件和捕获型事件。IE只支持冒泡型事件标准DOM支持两者。

 3、事件监听方法

                1、绑定html 元素属性:

                        οnclick="check(this)">

                2、绑定DOM对象属性:

                        document.getElementById("xxx").οnclick=test;

 4、冒泡事件和捕获事件

                1、冒泡事件

                        冒泡事件是从内向外运行的

                                运行结果如下:

                                click me

                                先输出 p

                                再输出 div

                                接着是 body

                2、获取事件

                        获取事件是由外至内的运行

                                运行结果如下:

                                click me

                                先输出 body

                                再输出 div

                                接着就是 p

 5、访问事件对象

                1、IE中的事件对象

                        IE中的事件对象是一个隐式可用的全局对象:event,它是window对象的一个属性。

                                op.οnclick=function(){

                                   var oEvent=window.event;

                       }

                2、标准DOM的事件对象

                        在标准DOM浏览器检测发生了某个事件时,将自动创建一个Event对象,并隐式地将该对象作为事件处理函数的第一个参数传入

                        op.οnclick=function(oEvent){

                                   //作为参数传进来

                       }

        为了兼容不同的浏览器,通常采用下面的方法得到事件对象。

                      op.οnclick=function(oEvent){

                          if(window.event){

                              oEvent=window.event;

                                  ….

                          }

                      }

                3、事件常用属性

                        键盘事件:altKey shiftKey ctrKey

                        IE和标准DOM通用 按下 alt shift ctrl 为 true 否则为 false

                        阻止冒泡:cancelBubble 标准DOM stopPropagation

                        鼠标值:button 同IE

                        鼠标指针在客户区域坐标:clientX clientY 同IE

                                客户区域指的是浏览的窗口、

                        鼠标指针相对于计算机屏幕的坐标:screenX screenY 同IE

                        按键代号:keyCode 同IE

                        设置 false 时取消元素的默认事件:returnValue 同IE

                        引起事件的元素/对象:srcElement 标准DOM中 target

                        事件的名称:type 同IE

                4、常用的事件类型

                        鼠标事件

                        onclick 单击鼠标左键触发

                        ondbclick 双击鼠标左键触发

                        onmousedown 单击任何一个鼠标按键触发

                        onmouseout 鼠标移出任何一个元素边界触发

                        onmousemove 鼠标再某个元素上面移动时持续触发

                        onmouseup 松开鼠标任意一个按键时触发

                        onmouseover 鼠标指针移到一个元素上时触发

                        键盘事件

                        onkeydown 按下键盘上某个按键时触发,一直按会持续触发

                        onkeyup 释放某个按键时触发

                        onkeypress 按下某个键并产生字符时触发,忽略 shift 等功能键

                HTML事件

                        onload 页面完全加载后在window对象上触发

                        onunload 页面完全卸载后在window对象上触发

                        onselect 选择了文本框中的一个或多个字符时触发

                        onsubmit 单击“提交”按钮时在表单 form 上触发

                        onfocus 任何元素或窗口获取焦点时触发

                        onblur 任何元素或窗口失去焦点时触发

                常用的HTML事件

 标准DOM中

addEventListener的使用方式: DOMOBJ.addEventListener(事件, 接口/函数, true/false); DOMOBJ: 文档节点、document、window 或 XMLHttpRequest。 type:事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。 listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

IE中

target.attachEvent(type, listener);

target:文档节点、document、window 或 XMLHttpRequest。 type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。

listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 例如:

document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});

attachEvent方法:

attachEvent用法:attachEvent(事件类型, 处理函数);---针对IE

addEventListener(事件类型, 处理函数, 使用捕获);---针对FireFox

var theBtn = document.getElementById("theBtn");  //取得ID为theBtn的按钮theBtn.attachEvent("onclick", buttonClicked);   //给按钮增加事件function buttonClicked (e){  alert("点击了一下");  }  //定义函数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值