学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象
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)~事件、事件绑定、取消事件冒泡、事件对象的更多相关文章
- [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)
http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- 【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 ...
- 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)
不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...
- 《MySQL必知必会》学习笔记——前言
前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...
- 《SQL必知必会》学习笔记整理
简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...
- 《SQL必知必会》学习笔记(一)
这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...
- mysql学习--mysql必知必会1
例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...
- mysql学习--mysql必知必会
上图为数据库操作分类: 下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...
- 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...
随机推荐
- N1BOOK——[第五章 CTF之RE章]wp
推荐在了解了相应章节的内容后再来练习,你会觉得顿时悟了 记录一下自己的解题过程 2,3,4题目附件来源:https://book.nu1l.com/tasks/#/pages/reverse/5.4 ...
- JavaFx WebView使用研究
原文: JavaFx WebView使用研究 | Stars-One的杂货小窝 本篇是基于TornadoFx框架的基础研究的,示例代码都是Kotlin版本,各位可以看着参考下 WebView中比较重要 ...
- Google earth engine 中的投影、重采样、尺度
本文主要翻译自下述GEE官方帮助 https://developers.google.com/earth-engine/guides/scale https://developers.google.c ...
- LuoguB2044 有一门课不及格的学生 题解
Content 给出一名学生的语数英三门成绩,请判断该名学生是否恰好有一门不及格(成绩小于 \(60\) 分). 数据范围:成绩在 \(0\sim 100\) 之间. Solution 强烈建议先去做 ...
- LuoguP7222 [RC-04] 信息学竞赛 题解
Content 给定一个角 \(\alpha\),求 \(\beta=90^\circ-\alpha\). 数据范围:\(\alpha\in[-2^{31},2^{31}-1]\). Solution ...
- CPU中断数查看与网卡中断绑核
CPU中断数查看 多核CPU每个核心CPU发生中断的数量查看 # mpstat -I SUM -P ALL 1 3 Linux 5.4.0-40-generic (verify-new-511kern ...
- JAVA中Base64和byte数组(byte[]) 相互转换
Base64转byte[] byte[] bytes = DatatypeConverter.parseBase64Binary("base64字符串"); byte[]转base ...
- JAVA简单整合protoc文件
引入maven <dependency> <groupId>com.google.protobuf</groupId> <artifactId>prot ...
- LeetCode1240铺瓷砖
题目 n*m的矩阵,只用正方形铺.求最少正方形个数. n,m<=13 思路 贪心: 加入是最大的正方形,显然行不通,比如n=11,m=13.那么贪心策略是1个11,其余是大小为2的正方形5个,大 ...
- Windows下安装配置MySQL
Windows下安装配置MySQL的基本步骤 一.MySQL下载 MySQL官方下载地址https://dev.mysql.com/downloads/mysql/5.7.html#downloads ...