jquery 笔记 事件


Posted in Javascript onNovember 02, 2011

浏览器模型:
1、DOM第0级模型
事件处理程序通过吧函数实例的引用指派到DOM元素的属性而声明。这也是我们最常见的,如onclick等

<img onclick="alert('hello');" src="1.jpg" /> 
$("img").onmouseover = function(){alert("hello");}

(1)、其中比较好玩的是Event实例和事件冒泡
Event实例是大多数浏览器把事件的类实例作为第一个参数传给函数,但是ie中则是将event指定到window的属性;在获取目标元素w3c标准浏览器存在target,ie则取srcElement属性,为兼容事件如下写:
$("img").onclick=function(event){ 
if(!event) event = window.event; 
var target = event.target?event.target:event.srcElement; 
}

(2)、事件冒泡
目标元素获得机会吃力事件,事件模型坚持目标元素的父元素,看是否为同类型建立了处理程序,如果是,则也调用处理程序,直到DOM树顶部
对于w3c标准浏览器可使用event的stopPropagation(),对于ie可使用event的cancelBubble取消冒泡

2、第2级模型
解决0级模型中每个属性存储事件只能注册一个处理程序缺陷。

$("img").addEventListener('click',function1,false).addEventListener('click',function2,false);

在2级模型中,事件被触发,先从DOM树向下传播到目标元素(捕捉阶段),再向上冒泡,上面的addEventListener第三个参数为false时建立冒泡型处理程序,为ture时建立捕捉型处理程序。
这里的捕捉型也是第一次听说,因为ie6和7就不支持第2级模型,所以也难怪,但部分ie浏览器支持类似冒泡型的有attachEvent(eventName,handler)。

那么jquery的bind则我们解决了这些。。。
参考《jquery实战》

Javascript 相关文章推荐
理解Javascript_05_原型继承原理
Oct 13 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
jQuery给多个不同元素添加class样式的方法
Mar 26 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 Javascript
谈谈对vue响应式数据更新的误解
Aug 01 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
微信小程序webview 脚手架使用详解
Jul 22 Javascript
分页栏的web标准实现
Nov 01 #Javascript
jquery键盘事件使用介绍
Nov 01 #Javascript
JS鼠标事件大全 推荐收藏
Nov 01 #Javascript
EasyUI中的tree用法介绍
Nov 01 #Javascript
jQuery代码优化 事件委托篇
Nov 01 #Javascript
jQuery代码优化 遍历篇
Nov 01 #Javascript
jQuery代码优化 选择符篇
Nov 01 #Javascript
You might like
博士208HAF收音机实习报告
2021/03/02 无线电
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
javascript 必知必会之closure
2009/09/21 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
python中append实例用法总结
2019/07/30 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python序列类型种类详解
2020/02/26 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
写好自荐信的技巧
2013/11/08 职场文书
机关作风建设自查报告
2014/10/22 职场文书
整改通知书格式
2015/04/22 职场文书
亮剑观后感600字
2015/06/05 职场文书
办公室规章制度范本
2015/08/04 职场文书
高中运动会广播稿
2015/08/19 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang