zoukankan      html  css  js  c++  java
  • jquery 笔记 事件

    写js已经有很久了,但是对js的详细了解还是很肤浅的,这几天在看jquery,在其中有一些新的发现和体会,记录下来。

    浏览器模型:

    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实战》

    知识共享许可协议
    作品Tim Zhang创作,采用知识共享署名 3.0 中国大陆许可协议进行许可。 。
  • 相关阅读:
    成功交付离岸项目
    利用CSP探测网站登陆状态
    Web NFC API
    HTML/W3C-WHATWG-Differences
    MIT教授将网页开发整合为完整独立的程式语言Ur/Web
    移动端前端开发调试
    从0到100——知乎架构变迁史
    C++之再续前缘(一)——C++基础(与C语言的差异)(上)
    又爱又恨系列之枚举enum
    数据结构之队列(三)——循环队列
  • 原文地址:https://www.cnblogs.com/ccdc/p/2232292.html
Copyright © 2011-2022 走看看