Javascript 事件 笔记 1

HTML 事件处理程序:

  缺点:html 和 js 耦合性太高 (如果改动方法名 那么就要改HTML 代码和JS代码 )

  优点: 兼容性强

1 <input type="button" id="btn1" value="btn1" onclick="alert(this.value)">

Dome 0 级事件处理程序:

  把函数赋值给一个事件的属性。

  简单,跨浏览器

  

1 var btn2 = document.getElementById(‘btn2‘);
2 // dome 0 级 加载事件
3 btn2.onclick = function() {
4     alert(‘hello world‘);
5 }
6
7 // dome 0 级 取消加载事件
8 // btn2.onclick = null;

Dome 2 级 事件处理程序(IE9 一下不适用):

  两个方法 addEventListener(),removeEventListener()

  接收三个参数 1.事件名  2. 事件处理函数  3. 布尔值 (true 表示事件捕获, false 表示事件冒泡)

1 // dome 2 级 加载事件 事件名前不需要加ON
2 var btn3 = document.getElementById(‘btn3‘);
3 btn3.addEventListener(‘click‘, btn3fun, false);
4
5 btn3.addEventListener(‘click‘, btn2fun, false);

IE事件处理程序(听说IE11 已经废弃了这两个方法):

  两个方法 attachEvent() detachEvent()

  接收两个参数, 1.事件名 2. 处理函数 
  问: 这里为什么没有布尔值?

  答: IE9 之前只支持冒泡

1 // IE 的事件处理程序 事件名前需要加on IE 11已经移除了这两个方法
2 var btn4 = document.getElementById(‘btn4‘);
3 // alert(btn4[‘value‘]);
4 btn4.attachEvent(‘onclick‘, btn3fun);
5 btn4.detachEvent(‘onclick‘, btn3fun);

全面实例:

 1 <html>Hello Javascript</title>
 2
 3 </head>
 4
 5
 6 <body bgcolor="yellow">
 7 <h1>Hello world</h1>
 8 <!-- html 加载事件 -->
 9 <input type="button" id="btn1" value="btn1" onclick="alert(this.value)">
10 <input type="button" id="btn2" value="btn2">
11 <input type="button" id="btn3" value="btn3">
12 <input type="button" id="btn4" value="btn4">
13
14 </body>
15 <!-- 注意加载顺序 -->
16 <script type="text/javascript">
17 var btn2 = document.getElementById(‘btn2‘);
18 // dome 0 级 加载事件
19 btn2.onclick = function() {
20     alert(‘hello world‘);
21 }
22 btn2.onclick = btn3fun;
23 //dome 0 级 只识别最后一个加载事件
24 btn2.onclick = btn2fun;
25 // dome 0 级 取消加载事件
26 // btn2.onclick = null;
27
28 function btn2fun(){
29     alert(‘btn2‘);
30 };
31
32 function btn3fun() {
33     alert(‘this is btn3 function‘);
34 }
35
36 // dome 2 级 加载事件 事件名前不需要加ON
37 var btn3 = document.getElementById(‘btn3‘);
38 btn3.addEventListener(‘click‘, btn3fun, false);
39
40 btn3.addEventListener(‘click‘, btn2fun, false);
41 //卸载事件的方法应该和加载时的参数一样 匿名函数卸载不了
42 btn3.removeEventListener(‘click‘, btn3fun, true);
43 // addEventListener 添加的事件 只能通过removeEventListener 删除
44 btn3.onclick = null;
45
46 // IE 的事件处理程序 事件名前需要加on IE 11已经移除了这两个方法
47 var btn4 = document.getElementById(‘btn4‘);
48 // alert(btn4[‘value‘]);
49 btn4.attachEvent(‘onclick‘, btn3fun);
50 btn4.detachEvent(‘onclick‘, btn3fun);
51
52
53 </script>
54 </html>

关于什么是 事件冒泡 , 事件捕获 请看这位仁兄的博客:http://www.cnblogs.com/janes/p/3912677.html

Javascript 事件 笔记 1,布布扣,bubuko.com

时间: 2024-10-20 11:23:04

Javascript 事件 笔记 1的相关文章

javascript事件详解笔记

javascript事件详解笔记: 一.事件流 1.事件流: 描述的是页面中接受事件的顺序,有事件冒泡.事件捕获两种. 2.事件冒泡: 由最具体的元素接收,然后逐级向上传播到最不具体的元素的节点(文档). 3.事件捕获: 最不具体的节点先接收事件,而最具体的节点应该是最后接收事件. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>事件</title&

学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcElement(触发事件的事件源对象)和attachEvent("onclick",function(){...}); 2. a. 实现拖放(Drag and Drop): 目前支支持IE, 若定制某对象为可拖放对象, 则必须覆盖目标对象的dragenter和dragover事件, 可以用e

javascript - 工作笔记 (事件四)

在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345   yx.bind(item, "click", function (e) {         //console.log("Div Click 1 !");         alert("Div Click 1 !");         e.stopPropagation();     }); 但是这样用起来有些

JavaScript 学习笔记— —事件委托

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //事件委托:利用冒泡的原理,把事件加到父级上,触发执行效果 //好处 //1.提高性能 //2.新添加的元素,还会有之前的事件 //event

javascript学习笔记整理(事件)

一.事件驱动 1.事件javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源引发事件的元素(发生在谁的身上) 3.事件处理程序对事件处理的程序或是函数 (发生了什么事) 二.事件的分类 1.鼠标事件 onclick 鼠标点击事件 ondblclick     鼠标双击事件 onmousedown     鼠标按下 onmouseup      鼠标松开 onmousemove       鼠标移动 onmouseover         鼠标移入 onmouseout

JavaScript学习笔记——事件

javascript事件基础和事件绑定 一.事件驱动 1.事件 javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源 引发事件的元素.(发生在谁的身上)3.事件处理程序 对事件处理的程序或是函数 (发生了什么事) 二.事件的分类 1.鼠标事件 onclick ondblclick onmousedowm onmouseup onmousemove onmouseover onmouseout 2.键盘事件 onkeyup onkeydown onkeypress 鼠

【优波尔】JavaScript的笔记 (1) 简介 用法 输出 语法

JavaScript基础笔记整理(1) 2015.05.29 今日任务:简介 用法 输出 语法 一.JavaScript的简介 JavaScript是脚本语言 JavaScript 是轻量级的编程语言,可插入html的代码 学习JavaScript了你会那些知识? (1)JavaScript:直接写入html输出流 document.write("<h1>这是一个标题</h1>"); (2)JavaScript:对事件的反应 <button type=&q

JavaScript学习笔记【3】数组、函数、服务器端JavaScript概述

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 数组 函数 服务器端JavaScript概述 数组 数组是动态的:根据需要它们会增长或缩减,并且在创建数组时无须声明一个固定的大小或在数组大小变化时无须重新分配空间. 数组可能是稀疏的:索引不一定要连续的,它们之间可以有空缺. 通常,数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快很多. 数组继承自Array.prototype中的属性,它定义了一套丰富的数组操作方法. 如果省略数组直接量中的某个

Java程序员的JavaScript学习笔记(14——扩展jQuery UI)

计划按如下顺序完成这篇笔记: Java程序员的JavaScript学习笔记(1--理念) Java程序员的JavaScript学习笔记(2--属性复制和继承) Java程序员的JavaScript学习笔记(3--this/call/apply) Java程序员的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序员的JavaScript学习笔记(5--prototype) Java程序员的JavaScript学习笔记(6--面向对象模拟) Java程序员