浏览器模型: 1、DOM第0级模型 事件处理程序通过吧函数实例的引用指派到DOM元素的属性而声明。这也是我们最常见的,如onclick等 复制代码 代码如下: <img onclick="alert('hello');" src="1.jpg" /> $("img").onmouseover = function(){alert("hello");} (1)、其中比较好玩的是Event实例和事件冒泡 Event实例是大多数浏览器把事件的类实例作为第一个参数传给函数,但是ie中则是将event指定到window的属性;在获取目标元素w3c标准浏览器存在target,ie则取srcElement属性,为兼容事件如下写: 复制代码 代码如下: $("img").onclick=function(event){ if(!event) event = window.event; var target = event.target?event.target:event.srcElement; } (2)、事件冒泡 目标元素获得机会吃力事件,事件模型坚持目标元素的父元素,看是否为同类型建立了处理程序,如果是,则也调用处理程序,直到DOM树顶部 对于w3c标准浏览器可使用event的stopPropagation(),对于ie可使用event的cancelBubble取消冒泡 2、第2级模型 解决0级模型中每个属性存储事件只能注册一个处理程序缺陷。 复制代码 代码如下: $("img").addEventListener('click',function1,false).addEventListener('click',function2,false); 在2级模型中,事件被触发,先从DOM树向下传播到目标元素(捕捉阶段),再向上冒泡,上面的addEventListener第三个参数为false时建立冒泡型处理程序,为ture时建立捕捉型处理程序。 这里的捕捉型也是第一次听说,因为ie6和7就不支持第2级模型,所以也难怪,但部分ie浏览器支持类似冒泡型的有attachEvent(eventName,handler)。 那么jquery的bind则我们解决了这些。。。 参考《jquery实战》
推荐阅读
jQuery代码优化之基本事件
事件模型 说到事件,就要追溯到网景与微软的“浏览器大战”了。当时,事件模型还没有标准,两家公司的实现就是事实标准。网景在Navigator中实现了“事件捕获”的事件系统,而微软则在IE中实现了一个基本上相反的事>>>详细阅读
本文标题:jquery 笔记 事件
地址:http://www.17bianji.com/kaifa2/JS/23966.html
1/2 1