JavaScript学习总结4--事件绑定

所谓事件,就是指我们在页面上的一些交互操作,比如单击鼠标,按下键盘等等

当我们需要操作某些元素使它有一定的交互效果时,就需要给相应的元素绑定事件处理函数

事件绑定分为3种,分别是HTML内嵌(不推荐)、传统事件绑定(也叫DOM0级事件绑定)、以及DOM2级事件绑定

1.HTML内嵌

<!--省略之前代码-->
<body>
    <a href="#" onclick="fnEvent()">点我触发事件</a>
</body>
<script>
    function fnEvent(){
      alert("绑定了事件");
    }
</script>

但是这种写法违背了结构表现行为分离的原则,所以并不推荐这样绑定事件

2.DOM0级事件绑定

//省略之前代码
var aA=document.getElementsByTagName("a")[0];
aA.onclick=function(){
  alert("绑定事件成功!");
}

//也可以写成
function abc(){
  alert("绑定事件成功");
}
aA.onclick=abc;

这是一种赋值的写法,相当于直接将事件处理函数赋值给元素的点击事件,非常简单

缺点是一个元素一次只能绑定一个事件处理函数,新绑定的事件处理函数也会覆盖旧的事件处理函数

3.DOM2级事件绑定

DOM2级事件绑定涉及到IE与标准W3C兼容性问题

还是以上一段代码中的a元素为例,W3C的绑定方式为

var aA=document.getElementsByTagName("a")[0];
    aA.addEventListener(‘click‘,function(e){
    alert("事件绑定成功");
},false);
//这里aA元素调用addEventListener方法,传入三个参数,分别为事件类型(不带on),事件处理函数以及是否事件捕获(true为事件捕获,false为事件冒泡)

而IE下的绑定方式为

aA.attachEvent(‘onclick‘,function(){
    alert("绑定了事件");
});
//需要注意的是,IE仅支持事件冒泡,事件处理函数中如果使用this,那么this指向的是window对象,而不是当前元素
//IE的事件绑定函数中事件类型需要带on

这么一来就需要兼容W3C与IE的不同绑定方式

DOM2级事件跨浏览器绑定

//跨浏览器绑定事件
function addEvent(element,type,fn){
    if(element.addEventListener){
      element.addEventListener(type,fn,false);
    }else{
      element.attachEvent(‘on‘+type,fn);
    }
}
时间: 2024-10-06 23:56:31

JavaScript学习总结4--事件绑定的相关文章

JavaScript学习13:事件绑定

事件绑定分为两种:一种是传统事件绑定(内联模型.脚本模型),一种是现代事件绑定(DOM2级模型).现代事件绑定在传统绑定的基础上为我们提供了更强大更方便的功能. 传统事件绑定的问题 因为内联模型很少用,这里不做讨论.先来看一下脚本模型,将一个函数赋值给一个事件处理函数. <span style="font-size:18px;">var box=document.getElementById('box'); box.onclick=function(){ alert('Li

JavaScript学习12:事件对象

JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给我们的开发提供更多的强大功能.最方便和强大的就是事件对象了,它们可以帮你处理鼠标和键盘方面的很多事情,此外我们还可以修改一般事件的捕获或者冒泡流的函数. 在上篇博客中我们已经对事件有了一个基本的认识,结尾处我们提到了事件处理函数.事件处理函数的一个标准特性是,以某些方式访问的事件对象包含有关于当前事件的上下文信息.事件处理由三部分组成:对象.事件处理函数=函数. 那么事件对象又是什么呢?它在哪里? 当触发某个事件时,会产生

日积(Running)月累(ZSSURE):WCF学习之“通过事件绑定控制WinForm宿主程序主界面控件”

背景: WCF服务需要寄宿到相应的可运行进程中执行,常见的有四种寄宿,分别是控制台程序.WinForm程序.IIS和Windows服务.之前学习老A博客和<WCF全面解析>时最常用到的是控制台寄宿,近期由于项目需求,需要在WinForm程序中调用WCF服务,本博文通过一个简单的实例来演示WCF在WinForm中的寄宿.并着重介绍如何利用事件绑定控制宿主主UI界面控件. 题记: 之前一直坚守在C++阵地,对于新语言.新技术(诸如Python.J2EE.Bigdata.AI)不甚感冒.自以为&qu

javascript - 工作笔记 (事件绑定二)

在上篇中的事件绑定方法,相信大家都看到过了. 不过这里有点小小的问题,这些方法,变量都是全局的,难免会与其他的库或者方法发生冲突而被覆盖,因此,我在这里做了小小的封装,如下: JavaScript Code 12345678910111213141516171819202122232425262728293031323334353637383940   (function(window){         var Yx = function(){ }         Yx.evGuid = 0;

javascript - 工作笔记 (事件绑定)

背景: 目前所做的项目,只能使用的是原生的javascript.对于javascript的事件绑定想必大家都懂得语法: 1,在标签中使用属性调用方法:<div onclick="AAAA();"></div> 2,在javascript中对标签对象绑定数据: <div id="test"></div> var item = document.getElementById("test"); item.

JavaScript学习11:事件入门

JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击鼠标,敲击键盘了等等.当用户执行类似操作的时候,再去触发执行一系列代码作为用户操作的响应,这就是所谓的事件了吧. 事件一般是用于浏览器和用户操作进行交互,通常我们将JavaScript中的事件模型分为三种:内联模型.脚本模型和DOM2模型. 内联模型 是最传统的接单的一种处理事件的方法.在这个模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件.虽然内联在早期使用较多,但是它是和html混写的,并没有与ht

javascript中常用的事件绑定方法

我们要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 一. 在DOM元素中直接绑定 这里的DOM元素,可以理解为HTML标签.JavaScript支持在标签中直接绑定事件,语法为:    onXXX="JavaScript Code" 其中

JavaScript学习笔记之事件

首先,事件流描述的是从页面中接受事件的顺序. 事件捕获和事件冒泡: IE的事件流是事件冒泡,一直冒泡到window对象.(IE9之前会跳过HTML元素,从body直接跳到document) 事件捕获:与事件冒泡的思路相反,即不太具体的节点应该先接收到事件的信息,最具体的节点应该最后接受到事件信息.(IE9也支持) DOM事件流: 分为三个阶段:事件捕获,处于目标阶段,事件冒泡. IE9之前的浏览器不支持事件流. 事件处理程序就是响应某个事件的函数,也叫做事件侦听器. HTML事件处理程序:因为值

JAVAscript学习笔记 js事件 第一节 (原创) 参考js使用表

<!DOCTYPE html> <html lang="en" onUnload="ud()"> <head> <meta charset="UTF-8"> <title>Title</title> <script> function demo() { alert("hello"); } function onOver(ooj) { ooj.i