zoukankan      html  css  js  c++  java
  • js-事件1

    本课我将讲述js中的事件及一些浏览器兼容问题

    本章主要从以下几个方面讲起:1.事件流  2.事件的浏览器兼容   3.鼠标,键盘事件

    1. 事件流

    什么叫事件流?

    描述的是事件接受的顺序。这句话听起来 还是不怎么容易理解。那么我就 结合两中事件流的方式具体来说一下

    事件流有两种方式:冒泡方式, 捕获方式。

    对于下面这个页面来说

    <!DOCTYPE html>
    <html onclick="#">
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <link type="text/css" rel="stylesheet" href="index.css"/>
        <script type="text/javascript" src="index1.js" charset="gbk"></script>
    </head>
    <body onclick="#">
    <div id="content" onclick="#">
        <span id="start" onclick="#">开始</span>
        <span id="stop">停止</span>
    </div>
    </body>
    </html>

    如果是冒泡方式的话,那么假如你点击的是start这个元素的话,那么会第一响应start这个span的点击事件,但是这个span是在id=content这个div中的,所以你点击这个span其实也就是点击了它的父辈div,以此类推,也就是点击了body,点击了html,所以这几个元素的点击事件都会响应。冒泡方式就是从点击最具体的位置开始响应,然后往父辈元素响应,一层一层的往外冒泡,所以取名叫冒泡方式。

    捕获事件就是与冒泡事件恰恰相反,就是它是从最外面的父层开始响应事件,然后慢慢往子元素递进。

    一般IE浏览器采取的方式都是冒泡方式的

    2.事件兼容问题

    其次,就事件的方式来说,有三种事件方式:HTML事件,DOM0,DOM2.三种事件方式。

    首先来说一下什么事html事件方式

    我们通常给一个按钮附加点击事件,如下所示:

    <input type="button" id="input" onclick="function(){.....}"/>

    或者

    <input type="button" id="input" onclick="play()"/>

    <script type="text/javascript" >

    function play(){

    .....

    }

    </script>

    DOM0级事件处理方式:

    <script type="text/javascript">

    Object.onclick=function(){

    ....

    }

    如果想取消这个点击事件,只需要下面操作

    Object.onclick=null;

    </script>

    DOM2级事件处理方式

    <script type="text/javascript">

    Object.addEventListener("EventType",function,value);//这种方式给某个元素绑定某个事件,其中EventType是事件类型,比如click,mouseout等,function指的是要调用的事件名,value表是的是布尔值,flase表示的冒泡方式,true表示的是事件捕获方式。

    Object.removeEventListener("EventType",function,value);

    在IE中DOM2的方式有点不一样

    Object.attachEvent("EventType",function),只有两个参数,跟上面一样,没有value这个参数,因为IE中默认的是冒泡形式。

    Object.detachEvent("Event TYpe",function)一样的用来解除这个事件。

    </script>

    其中千万要注意一点。就是不管DOM0级还有DOM2级中的IE中的方式,事件前面都有on例如onclick,onmouseover,等但是在DOM2级中的addEventListener方式中事件前面不要加on,例如click.

  • 相关阅读:
    比较对象的相对性
    深拷贝与浅拷贝(TBD)
    创建UI的线程才能访问UI,那么怎样才算访问UI呢
    多层级的数据绑定效果
    众所周知,static修饰的成员只实例化一次,而string类型每次赋值都会重新创建一个实例,那么用static修饰string呢?
    常量、只读字段
    使用dos打开相关软件
    查看电脑硬件信息dos命令
    Windows常用快捷键
    使用外部编辑器出现乱码
  • 原文地址:https://www.cnblogs.com/yuaima/p/5080013.html
Copyright © 2011-2022 走看看