JavaScript的事件_事件概述/事件模型

一、事件概述

  JavaScript 事件是由访问 Web 页面的用户引起的一系列操作,例如:用户点击页面上的某个按钮或者鼠标移动到页面的某个图片上而产生一系列的互动的反馈。

  当用户执行某些操作的时候,再去执行一系列代码

  事件一般是用于浏览器和用户操作进行交互。最早是 IE 和 Netscape Navigator 中出现,作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。

  而 DOM2级规范开始尝试以一种复合逻辑的方式标准化 DOM 事件。IE9、Firefox、Opera、Safari 和Chrome 全都已经实现了“DOM2 级事件”模块的核心部分。IE8 之前浏览器仍然使用其专有事件模型。

  JavaScript 有三种事件模型:内联模型、脚本模型和 DOM2 模型。

二、内联模型

  这种模型是最传统的一种处理事件的方法。在内联模型中,事件处理函数是 HTML标签的一个属性,用于处理指定事件。

  虽然内联在早期使用较多,但它是和 HTML 混写的,并没有与 HTML 分离导致违反了分层的原则

<script type="text/javascript">
    function box(){
        alert("我操");
    }
</script>

</head>
<body>
    <!--在 HTML 中把事件处理函数作为属性执行 JS 代码  onclick是事件处理函数-->
    <input type="button" value="按钮" onclick="alert(‘Lee‘);" />

   <!--在 HTML 中把事件处理函数作为属性执行 JS 函数-->
    <input type="button" value="按钮" onclick="box();" />
</body>
<script type="text/javascript">

    window.onload = function(){
        function box(){
            alert("我操");
        }
    };
</script>
</head>
<body>
    <input  type="button" value="点我" onclick="box()"/>    <!--如果box函数放在一个匿名函数里面执行不到 这成了闭包-->
</body>

三、脚本模型

  由于内联模型违反了 HTML 与 JavaScript 代码层次分离的原则。为了解决这个问题,我们可以在 JavaScript 中处理事件。这种处理方式就是脚本模型

<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];

        //对像.事件处理函数=函数名或者匿名函数
        input.onclick=function(){
            alert("我操");
        }
    }
</script>
</head>
<body>
    <input type="button" value="按钮" />
</body>

  通过匿名函数,可以直接触发对应的代码。也可以通过指定的函数名赋值的方式来执行函数(赋值的函数名不要跟着括号)。

<script type="text/javascript">
    function box(){
        alert("我操");
    }
    window.onload = function(){
        var input = document.getElementsByTagName(‘input‘)[0];

        //对像.事件处理函数=函数名或者匿名函数
        input.onclick=box;
    }
</script>

</head>
<body>
    <input type="button" value="按钮" />
</body>

  函数和事件处理函数也可以封装到一起

<script type="text/javascript">
    window.onload = function(){
        var input = document.getElementsByTagName("input")[0];
        input.onclick= box;
        function box(){
            alert("哈哈");
        }
    };
</script>
</head>
<body>
    <input  type="button" value="点我"/>
</body>
时间: 2024-10-28 14:21:33

JavaScript的事件_事件概述/事件模型的相关文章

javascript 事件传播与事件冒泡,W3C事件模型

说实话笔者在才工作的时候就听说了什么"事件冒泡",弄了很久才弄个大概,当时理解意思是子级dom元素和父级dom元素都绑定了相同类型的事件,这时如果子级事件触发了父级也会触发,然后这就叫做"事件冒泡".然而,事情要是这么简单的话,相信笔者这时一定已经迎娶了白富美,当上了CEO.坏就坏在后来又听说一个"事件传播" ,尼玛不是"事件冒泡"吗,然后又听说了"W3C事件模型"...到了最后笔者彻底心碎了,只能乖乖的当

JavaScript——DOM Level0和DOM Level2事件模型

事件处理是JavaScropt中近几年变化最大的部分,也是现有浏览器中仍然存在差异的主要方面之一.为了开发出能够跨浏览器兼容的事件处理程序,我们在编写程序时需要注意一些细节. [DOM Level0]:又称传统事件处理--通过对象属性将一个函数值指定为事件处理程序的做法.任何对象只允许指定一个事件处理程序.DOM Level0时间分成两种阵营:NetScape(Firefox,Mozilla,Opera,Safari)和IE阵营,为了获得这两种类型浏览器都能兼容的网页时,需要注意以下对象以及对应

JS DOM基础 事件概述 事件流 事件处理方法 添加监听器 事件类型 事件对象 事件委托

一.事件概述 事件是什么? 在我们的生活中,都会接触到事件这样一个概念,它通常通过描述发生这件事的时间.地点.人物,发生了什么来进行概括. 同样的在javascript也有这样的一个的东西------事件. 页面上发生的事件:鼠标移动.点击.滚动等等. 事件描述了页面上发生的事情,通常它有以下三个要素组成: 事件源:触发事件的元素 事件类型:事件的触发方式(例如鼠标点击或键盘点击) 事件处理程序(事件监听器):事件触发后要执行的代码(函数形式) Javascript 使我们可以动态的去操作一个页

整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流.都是流的一种生动体现.用术语说流是对输入输出设备的抽象.以程序的角度说,流是具有方向的数据. 事件流分事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其

javaScript事件(一)事件流

一.事件 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字.事件是javaScript和DOM之间的桥梁.你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应.典型的例子有:页面加载完毕触发load事件:用户单击元素,触发click事件. 二.事件流 1.事件流感性认识问题:单击页面元素,什么样的元素能感应到这样一个事件?答案:单击元素的同时,也单击了元素的容器元素,甚至整个页面.例子:有三个同心圆, 给每个圆添

javascript高级程序设计 第十三章--事件

javascript高级程序设计 第十三章--事件js与HTML的交互就是通过事件实现的,事件就是文档或浏览器窗口中发生的一些特定的交互瞬间. 事件流:事件流描述的是从页面中接收事件的顺序,IE的是事件冒泡流,Netscape的是事件捕获流,这个两个是完全相反的事件流概念. 事件冒泡:由最具体的元素接收,然后逐级向上传播到更高级的节点,即事件沿DOM树向上传播,直到document对象. 事件捕获:不大具体的节点应该更早接收到事件,相当于沿DOM节点树向下级传播直到事件的实际目标,在浏览器中,是

javaScript事件(五)事件类型之鼠标事件

一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 四.IE事件处理程序 以上内容见javaScript事件(二)事件处理程序 五.事件对象 以上内容见javaScript事件(三)事件对象 六.事件对象的公共成员 以上内容见javaScript事件(四)event的公共成员 七.鼠标事件 DOM3级事件中定义了9个鼠标事件. mousedown:鼠标按钮被按下(左键或者右键)时触发.不能通过键盘触发. mouseup:鼠标按钮被释放弹起时触发.不能通过键盘

javaScript事件(三)事件对象

一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 四.IE事件处理程序 以上内容见javaScript事件(二)事件处理程序 五.事件对象 1.认识事件对象 事件在浏览器中是以对象的形式存在的,即event.触发一个事件,就会产生一个事件对象event,该对象包含着所有与事件有关的信息.包括导致事件的元素.事件的类型以及其他与特定事件相关的信息. 例如:鼠标操作产生的event中会包含鼠标位置的信息:键盘操作产生的event中会包含与按下的键有关的信息.

JavaScript文档加载和事件绑定

为了保证网页代码层次清晰,便于管理,一般HTML中只体现网页结构,具体的行为处理通过JS实现,样式则通过CSS文件管理. 在以上原则下通过JS实现行为时,一定要注意文档加载过程中,执行JS代码的时机.页面加载过程有两个事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成.(可以说:ready 在onload 前加载.) (1) 一些待调用函数定义,要在调用前定义. (2) 对于完善网页元素的JS,伴随文档

document.ready和onload的区别——JavaScript文档加载完成事件

文章转自:http://blog.csdn.net/kk5595/article/details/5713209 页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成.(可以说:ready 在onload 前加载!!!) 我的理解: 一般样式控制的,比如图片大小控制放在onload 里面加载; 而:jS事件触发的方法,可以在ready 里面加载; 更多内容戳这里:http://blog.