1、常用的事件:

onload:页面加载

② onblur: 失去焦点 onfocus: 获取焦点

onclick:点击

④ onmouseover:鼠标经过 onmouseout:鼠标离开

onchange:内容改变

onsubmit:表单提交

2、绑定事件方式:

(1)行内绑定:

<元素 事件="事件处理程序(函数)">
<script>
function 函数名(){
console.log(this); //行内绑定的this是指向window
}
</script>

(2)动态绑定(用于结构+样式+行为分离的页面):

前提是进行window.load的初始化,在初始化过程中将事件绑定到元素(标签)上

语法:对象.事件 = 事件处理程序

<button id="btn" >按钮</button>

//js文件:通过window.onload 进行初始化,在初始化的过程中将事件动态绑定到元素上
window.onload = function (){
document.getElementById("btn").onclick = function (){
console.log(this);
}
}

(3)事件监听(为一个对象绑定多个事件处理程序)

   ① ie: attachEvent(type, callback)

     type:事件名,例如 onclick、onsubmit、onchange等  

     callback:事件处理程序(函数)

  ② 基于w3c模式:attachEventListener(type, callback, [capture])

     type:事件名,(没有前缀on)例如 click、submit、change等  

     callback:事件处理程序(函数)

     capture:可选,事件模型(为true是捕捉模式,false是冒泡模式)
//进行ie或w3c的判断
function addEvent(obj, type, callback){
if(window.attachEvent){
obj.attachEvent('on' + type, callback);
}else {
obj.addEventListener(type, callback);
}
}

3、取消事件冒泡:

① ie: window.event.cancelBubble = true;
② w3c: function(event) {//方法的第一个参数是event
event.stopPropagation();
} //进行ie或w3c的判断
function stopBubble(event){
if(window.event){
window.event.cancelBubble = true;
}else{
event.stopPropagation();
}
}

4、取消默认行为(例如:提交按钮、超链接)

  • 有些情况需要取消掉默认行为,例如资料填写不完整,将提交按钮的提交行为进行取消
//方法一:return false取消
<form method="get" action="#" onsubmit="return false"> //取消表单提交
//方法二:ie:window.event.returnValue = false;
// w3c: event.preventDefault();
<form method="get" action="#" >
<input type="text" name="name" id="name"/>
<input type="submit" value="提交" id="submit"/>
</form> <script>
window.onload = function (){
document.getElementById('submit').onclick = function (event) {
if(document.getElementById('name').value===''){
if(window.event){
window.event.returnValue = false; //ie
}else{
event.preventDefault(); //w3c
}
}
}
}
</script>

5、事件对象(事件发生时产生的对象,该对象包含了该事件的所有信息)

■ 获取事件对象:

① ie8 :window.event

② ie9、w3c: function(event){ } //函数的第一个形参

学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象的更多相关文章

  1. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

    http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...

  2. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  3. 【EatBook】-NO.1.EatBook.1.JavaData.1.001-《JSON 必知必会-Introduction to JavaScript Object Notation》-

    1.0.0 Summary Tittle:[EatBook]-NO.1.EatBook.1.JavaData.1.001-<JSON 必知必会-Introduction to JavaScrip ...

  4. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

  5. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

  6. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  7. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  8. mysql学习--mysql必知必会1

     例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...

  9. mysql学习--mysql必知必会

      上图为数据库操作分类:     下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...

  10. 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本

    1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...

随机推荐

  1. CF570A Elections 题解

    Content 有 \(n\) 个候选人和 \(m\) 个城市,每个城市可以给每个候选人投票,已知第 \(i\) 个城市给第 \(j\) 个人投的选票数是 \(a_{i,j}\).我们将第 \(i\) ...

  2. MySQL、Oracle元数据抽取分析

    最近接到个任务是抽取mysql和Oracle的元数据,大致就是在库里把库.schema.表.字段.分区.索引.主键等信息抽取出来,然后导成excel. 因为刚开始接触元数据,对这个并不了解,就想借助一 ...

  3. Centos7使用Docker启动elasticsearch服务秒退

    首先查看docker启动日志 docker logs -f 容器id 查看报错信息 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepG ...

  4. c++读取文件操作和写入文件

    在C++中与读取文件和写入文件简单操作有关的类分别有ifstream(文件读入).ofstream(文件写出).fstream (文件读入和写出). 名称 作用 ifstream 文件读入 ofstr ...

  5. 【LeetCode】3. Longest Substring Without Repeating Characters 无重复字符的最长子串

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:无重复字符,最长子串,题解,leetcode, 力扣,py ...

  6. misc之压缩文件处理

    misc之压缩文件处理 一.预备知识 1.头文件名代码   二.实验环境 1.winhex   三.题目来源 攻防世界杂项:János-the-Ripper.再见李华   实验一 打开题目文件是一个压 ...

  7. Docker 与 K8S学习笔记(七)—— 容器的网络

    本节我们来看看Docker网络,我们这里主要讨论单机docker上的网络.当docker安装后,会自动在服务器中创建三种网络:none.host和bridge,接下来我们分别了解下这三种网络: $ s ...

  8. 【kafka学习笔记】PHP接入kafka

    安装扩展 # 先安装rdkfka库文件 git clone https://github.com/edenhill/librdkafka.git 或者: wget https://gitee.com/ ...

  9. 一站式元数据治理平台——Datahub入门宝典

    随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程.作为新一代的元数据管理平台,Datahub在近一年的时间里发展迅猛,大有取代老牌元数据管理工具Atlas之势.国内Datahub ...

  10. TGAN

    目录 概 主要内容 Saito M., Matsumoto E. & Saito S. Temporal Generative Adversarial Nets with Singular V ...