001--js事件相关

一、什么是事件:

  • 用户->操作HTML元素->产生一个事件->事件主动的调用设定的方法(函数)

二、注册事件

  • HTML属性
    • 属性名:on+事件的名字 onclick
    • 属性值:方法
    • 1:直接在HTML设定
    • 2:通过js元素对象来设定
  • 通过系统提供的方法(可以给一个事件绑定多个方法)
    • div.addEventListner(事件类型,函数,事件的处理方式)
  • 删除事件
    • FF:div.removeEventListner(事件类型,函数)
    • IE:添加事件:attachEvent();删除事件:detachEvent()

三、事件函数

  • 事件函数:事件发生的时候操作的函数
  • 事件对象event(具体发生事件的元素,鼠标的位置,点击的状态,键盘的按钮)
    screen:基于屏幕;client:基于浏览器
  • 兼容写法 var e=window.event(IE8以及以前) || event

四、阻止默认事件

  • event.preventDefault()
  • return false(只针对a.onclick=add;)
  • IE:event.returnValue=false

五、事件传播

  • 默认情况下,单击页面一个标签,处在路径上的标签都会监听到对应的事件
  • 事件流:对应标签接受对象事件的顺序
    • 两个阶段:
    • 捕获阶段:从起始点-->目标位置
    • 冒泡阶段:目标位置-->起始点
  • addEventListner(参数1,参数2,参数3)第三个参数:默认false-->冒泡节点执行;true:捕获阶段执行

六、阻止冒泡

  • FF:event.stopPropagation()
  • IE:event.cancelBubble=true

七、事件代理(事件委托)

  • 利用冒泡原理
    ul.onclick=function (event) {
      var e = event||window.event,
              source = e.target || e.srcElement;//target表示在事件冒泡中触发事件的源元素,在IE中是srcElement
        if(source.nodeName.toLowerCase() == "li"){   //判断只有li触发的才会输出内容
            alert(source.innerHTML);
        }
        stopPropagation(e);                           //阻止继续冒泡
    };
    function addElement() {
        var li = document.createElement('li');
        li.innerHTML="我是新孩子";
        ul.appendChild(li);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,861评论 1 11
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,963评论 1 45
  • 声明:本文来源于http://www.webzsky.com/?p=731我只是在这里作为自己的学习笔记整理一下(...
    angryyan阅读 11,931评论 1 6
  • JavaScript 与 HTML 之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬...
    LemonnYan阅读 3,916评论 0 4
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,620评论 0 21