<javascript高级程序设计>跨浏览器事件处理程序EventUtil.js个人注释 EventUtil.js // 跨浏览器事件处理程序封装 var EventUtil = { // 添加事件句柄 addHandler: function(element, type, handler){ // DOM 2 级事件处理程序 if (element.addEventListener){ element.addEventListener(type, handler, false); } //…
一.前言 学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家. 二.事件对象封装 将对浏览器事件对象的操作封装成eventObject.js方便调用 //跨浏览器事件对象的操作 var EventUtil = { //绑定事件处理程序 addHandler : function(element, type, handler){ if(element.addEventListener){//DOM2级事件处理程序 element.addEventLis…
一.javascript事件处理中 addEventListener/removeEventListener 用于绑定事件和解除事件,但大多用于chrome/火狐/IE9这些比较高级的浏览器中,IE8及以下就没有效果. 主要用法:element.addEventListener(type,event,boolean); type:绑定的一些js事件如鼠标事件等:event:执行的动作我理解为一个函数:布尔值:我理解为事件开始执行的地方,默认值为false. 值得注意的是:removeEventL…
<div id="myDiv" style="width:100px; height:100px; border:1px solid #f00;"></div> <script> /** * 跨浏览器事件处理 **/ var EventUtil = { //添加事件 addHandler:function(element, type, handler){ if(element.addEventListener){ element.…
/**********事件处理程序***********EventUtil.js*浏览器兼容,<高三>13章 P354*2014-12-8********************************/var EventUtil = {    addHandler: function (element, type, handler) {        if (element.addEventListener) {            element.addEventListener(typ…
项目中有时候会不用jquery这么好用的框架,需要自己封装一些事件对象和事件处理程序,像封装AJAX那样:这里面考虑最多的还是浏览器的兼容问题,原生js封装如下:var EventUtil={ //节点.事件名.事件处理函数 addHanler:function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false);//这里一个参数为false意为在事件冒…
JavaScript作为一门基于事件驱动的语言(特别是用在DOM操作的时候),我们常常需要为DOM绑定各种各样的事件.然而,由于低版本的IE的不给力,在绑定事件和移除事件监听上都与众不同,我们常常需要自己封装一个跨浏览器绑定(移除)事件的函数.跨浏览器添加(移除)DOM事件的一种非常经典的实现代码如下: //跨浏览器添加事件 function addHandler(target, eventType, handler) { if(target.addEventListener) { //DOM2…
一.跨浏览器的事件对象 var EventUtil = { ///添加事件 addHandler: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent("on" + type, handler); }…
JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或者浏览器窗口中发生的一些特定的交互瞬间.可以使用事件处理程序来预订事件,以便在事件发生的时候执行响应的代码.这种观察者模式的模型,使得JavaScript代码与HTML和CSS代码之间形成了松散耦合. 事件流 事件流描述的是从页面中接受事件的顺序.但是值得注意的是,在当年的浏览器大战中的主角们采用的是几乎完全相反的事件流概念.IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获流. 事件…
主流的浏览器和IE浏览器在处理事件和事件对象上是有所区别的,我们一般会通过EventUtil进行封装,这样,就可以正常的跨浏览器处理事件了,本文的主要内容总结自<JavaScript高级程序设计3>. var EventUtil={ addHandler:function(element,type,handler){ //添加事件 if(element.addEventListener){ element.addEventListener(type,handler,false); //使用DO…
将 DOM 0级事件处理程序和DOM2级事件处理程序 IE事件处理程序封装为eventUtil对象,达到跨浏览器的效果.代码如下: var eventUtil = { // 添加事件句柄 addEventHandler:function (element,type,handler) { if (element.addEventListener) { element.addEventListener(type, handler,false); }else if(element.attachEven…
指定在元素的的事件处理程序中指定 <input type="button" value="click me" onclick="alert(this.value)"/> 这段代码可以正确工作,点击之后会弹出 click me字符串: 如果把该代码改为: <script>     function clickMe(){         alert(value);     } </script> <input…
引子:用javascript给元素绑定事件,我们可以用addEventListener这个方法,然而这个方法有兼容问题,比如在IE浏览器上面就无效,在IE上面要用attachEvent这个方法 一.addEventListener和attachEvent的区别: 1.addEventListener有3个参数,attachEvent只有2个参数,默认是冒泡 2.addEventListener的第一个参数是事件类型(例如:click),attachEvent的第一个参数是事件处理函数名称(例如:…
var EventUntil={ // 跨浏览器的添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false); }else if(element.attachEvent){ element.attachEvent('on'+type,handler); }else{ element['on'+type]=ha…
//跨浏览器获取xmlDom function getXMLDOM(xmlStr) { var xmlDom = null; if (typeof window.DOMParser != 'undefined') { xmlDom = (new DOMParser).parseFromString(xmlStr,'text/xml'); //创建xmlDom对象 var errors = xmlDom.getElementsByTagName('parsererror'); if(errors.…
事件操作对象: var EventUtil= { //添加事件 addHandler: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); }else if (element.attachEvent) { //IE element.attachEvent("on" + type, handler, false…
<div style="width: 150px; height: 150px; padding: 25px; border:1px solid blue; " id="divBox"> <p style="width: 100px; height: 100px; padding:25px; border:1px solid red; " id="pBox"> <span style="…
var EventUtil = { getEvent: function(event){ return event ? event : window.event; }, getTarget: function(event){ return event.target || event.srcElement; }, preventDefault: function(event){ if(event.preventDefault){ event.preventDefault(); } else{ ev…
1.阻止冒泡. function stopPropagation(event){ event = event || getEvent(event); if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble = true; } } Lily['event'] = stopPropagation; 2.阻止事件默认动作. function preventDefault(event){ event =…
var eventUntil = {             getEvent: function (event) {//获取事件                 return event ? event : window.event             },             addHandler: function (element, type, handler) {//事件监听                 if (element.addEventListener) {    …
本例是学习中笔记 望指正批评! <input id='b1' type='button' value='按钮'/> <script> window.onload=function(){ var oBtn=document.getElementById("b1"); function mto(){ alert("123"); }; try //非IE { oBtn.attachEvent("onclick",mto,fals…
探究JavaScript中的五种事件处理程序 我们知道JavaScript与HTML之间的交互是通过事件实现的.事件最早是在IE3和Netscape Navigator 2中出现的,当时是作为分担服务器运算负载的一种手段. 通俗地理解,事件就是用户或浏览器自身执行的某种操作.而事件处理程序即为响应某个事件的函数.抽出主干,即事件处理程序为函数.  我们又把事件处理程序称为事件侦听器.  事件处理程序是以"on"开头的,因此对于事件on的时间处理程序即为onclick.时间处理程序在Ja…
参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个时间,该时间会驱动某些函数来处理. 定义某种行为,然后将其添加到用户触发的事件之上(比如点击或者按键) 事件: 是文档/浏览器窗口中发生的,特定的交互瞬间. UI事件 焦点事件 鼠标和滚轮事件 click 鼠标主键(一般是左键)或按下回车键 dbclick 双击鼠标主键 mousedown 按下任意鼠标键,不能通过键盘触发…
事件就是用户或者浏览器自身执行的某种动作.诸如click.load和mouseover,都是事件的名字.而响应某个事件的函数就叫事件处理程序.事件处理程序的名字以"on"开头,比如click事件的事件处理程序是onclick.为事件指定事件处理程序的方式有多种方式. HTML事件处理程序 元素支持的事件,都可以使用与相应事件处理程序同名的HTML特性来指定.这个特性的值能支持一定的JavaScript代码.例如,在单击按钮的时候执行一些JavaScript代码. <div id=…
参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个事件,该事件会驱动某些函数来处理. 定义某种行为,然后将其添加到用户触发的事件之上(比如点击或者按键) 事件: 是文档/浏览器窗口中发生的,特定的交互瞬间. UI事件 焦点事件 鼠标和滚轮事件 click 鼠标主键(一般是左键)或按下回车键 dblclick 双击鼠标主键 mousedown 按下任意鼠标键,不能通过键盘触发…
在学习之前建议请看一下事件流.事件冒泡.事件捕获 一.事件对象 事件对象:在DOM触发事件时,会产生一个事件对象event,这个事件对象包含着所有与事件相关的信息.既然event是事件对象,那么它必然存在属性 ①DOM中的事件对象event属性   (1).type属性用于获取事件类型   (2).target.srcElement<兼容IE事件>属性用于获取事件目标    (3).stopPropagation()方法 用于阻止事件冒泡   (4).preventDefault() 方法 阻…
事件处理程序 事件处理程序即响应某个事件的函数 事件处理程序以 “on” 开头 如“onclick”,“onload” HTML事件处理程序 某个元素支持的每种事件都可以使用一个与响应的事件处理程序同名的HTML特性来指定 这个特性的值应该是能够执行的script代码 如: <input type="button" value="click me" onclick="alert('clicked')"/> 此外也可以直接调用在文档其它…
最近在深入实践js中,遇到了一些问题,比如我需要为动态创建的DOM元素绑定事件,那么普通的事件绑定就不行了,于是通过上网查资料了解到事件委托,因此想总结一下js中的事件绑定与事件委托. 事件绑定   最直接的事件绑定:HTML事件处理程序 如下示例代码,通过节点属性显式声明,直接在HTML中,显式地为按钮绑定了click事件,当该按钮有用户点击行为时,便会触发myClickFunc方法. /* html */ <button id="btn" onclick="myCl…
一.事件流的概念 + 事件流描述的是从页面中接收事件的顺序. 二.事件捕获和事件冒泡 +    事件冒泡接收事件的顺序:…
1.事件流:从页面中接收事件的顺序 1.1 IE :事件冒泡流1.2 Netscape :事件捕获1.3 DOM事件流 :事件捕获阶段——事件目标阶段——事件冒泡阶段DOM2级事件规定 :捕获阶段不会涉及目标事件. 2.事件处理程序 事件 :用户或者浏览器自身执行的 某种动作事件处理程序 :响应某个事件的 函数 . 2.1 HTML事件处理程序 用一个与该事件处理程序同名的HTML特性来指定. 2.1.1包含要执行的具体动作 <input type=”button” value=”Click m…