jQuery学习-事件之绑定事件(四)
今天我们来学习jQuery.Event对象。jQuery为了添加自己的处理机制,及可以传递用户自定义数据,于是Event对象就出世了。
1 jQuery.Event = function( src, props ) { 2 //instanceof 用于判断一个变量是否某个对象的实例 3 if ( !(this instanceof jQuery.Event) ) { 4 return new jQuery.Event( src, props ); 5 } 6 7 // Event object 8 if ( src && src.type ) { 9 /* 10 如果是event对象 11 * */ 12 this.originalEvent = src;//将原生的event对象存于Event中 13 this.type = src.type;//事件类型 14 15 // Events bubbling up the document may have been marked as prevented 16 // by a handler lower down the tree; reflect the correct value. 17 /* 18 修正isDefaultPrevented方法 19 * */ 20 this.isDefaultPrevented = src.defaultPrevented || 21 src.defaultPrevented === undefined && 22 // Support: IE < 9, Android < 4.0 23 src.returnValue === false ? 24 returnTrue : 25 returnFalse; 26 27 // Event type 28 } else { 29 //如果event是事件名称 30 this.type = src; 31 } 32 33 // Put explicitly provided properties onto the event object 34 //添加自定义属性 35 if ( props ) { 36 jQuery.extend( this, props ); 37 } 38 39 // Create a timestamp if incoming event doesn't have one 40 this.timeStamp = src && src.timeStamp || jQuery.now();//添加时间戳 41 42 // Mark it as fixed 43 this[ jQuery.expando ] = true;//标识event已被处理过 44 }; 45 46 jQuery.Event.prototype = { 47 isDefaultPrevented: returnFalse, 48 isPropagationStopped: returnFalse, 49 isImmediatePropagationStopped: returnFalse, 50 51 preventDefault: function() { 52 /* 53 修正【阻止默认事件】 54 * */ 55 var e = this.originalEvent;//取出原生evnet 56 57 this.isDefaultPrevented = returnTrue; 58 if ( !e ) { 59 return; 60 } 61 62 // If preventDefault exists, run it on the original event 63 if ( e.preventDefault ) { 64 e.preventDefault(); 65 66 // Support: IE 67 // Otherwise set the returnValue property of the original event to false 68 } else { 69 e.returnValue = false; 70 } 71 }, 72 stopPropagation: function() { 73 /* 74 修正【停止冒泡】 75 * */ 76 var e = this.originalEvent;//取出原生evnet 77 78 this.isPropagationStopped = returnTrue; 79 if ( !e ) { 80 return; 81 } 82 // If stopPropagation exists, run it on the original event 83 if ( e.stopPropagation ) { 84 e.stopPropagation(); 85 } 86 87 // Support: IE 88 // Set the cancelBubble property of the original event to true 89 e.cancelBubble = true; 90 }, 91 stopImmediatePropagation: function() { 92 /* 93 修正【stopImmdiatePropagation】 94 stopImmediatePropagation 的功能比stopPropagation 多一些, 95 除了可以阻止事件冒泡之外,还可以把这个元素绑定的同类型事件也阻止了。 96 * */ 97 var e = this.originalEvent; 98 99 this.isImmediatePropagationStopped = returnTrue; if ( e && e.stopImmediatePropagation ) { e.stopImmediatePropagation(); } this.stopPropagation(); }
107 };
Event方法主要是对兼容性做了处理看注释应该就明白了!
jQuery学习-事件之绑定事件(四)的更多相关文章
- jQuery学习-事件之绑定事件(三)
在上一篇<jQuery学习-事件之绑定事件(二)>我们了解了jQuery的dispatch方法,今天我们来学习下handlers 方法: handlers: function( event ...
- jQuery学习-事件之绑定事件(二)
在上一篇<jQuery学习-事件之绑定事件(一)>我们了解了jQuery的add方法,今天我们来学习下dispatch方法: dispatch: function( event ) { ...
- jQuery学习-事件之绑定事件(一)
我们都知道jQuery的事件其思想来源于Dean Edwards的addEvent,通过源码我们知道jQuery在为元素绑定事件时,每种类型的事件(click,blur)时只绑定了一次对应类型的事件处 ...
- jQuery如何给body绑定事件?
jQuery如何给body绑定事件? 代码如下: $(document).bind("resize", function () { alert("php-note.com ...
- JQuery在循环中绑定事件的问题详解
JQuery在循环中绑定事件的问题详解 有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说 ? 1 2 3 <input type="text" nam ...
- jQuery学习小结1-CSS操作+事件
一.DOM对象和jQuery 对象互换 1.jQuery对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法.比如: $(&quo ...
- jquery html 动态添加元素绑定事件
由于实际的需要,有时需要往网页中动态的插入HTML内容,并在插入的节点中绑定事件处理函数.我们知道,用Javascript向HTML文档中 插入内容,有两种方法, 一种是在写HTML代码写入JS,然后 ...
- jQuery相关方法7----各种事件和绑定事件
一.jQuery事件 1.鼠标事件 click与dbclick事件 click事件其实是由mousedown与mouseup 2个动作构成,所以点击的动作只有在松手后才触发 $ele.click(): ...
- jquery学习笔记(三):事件和应用
内容来自[汇智网]jquery学习课程 3.1 页面加载事件 在jQuery中页面加载事件是ready().ready()事件类似于就JavaScript中的onLoad()事件,但前者只要页面的DO ...
- [jquery]高级篇--js绑定事件
参考: http://www.cnblogs.com/leejersey/p/3545372.html jQuery on()方法是官方推荐的绑定事件的一个方法.$(selector).on(eve ...
随机推荐
- MySQL的表分区(转载)
MySQL的表分区(转载) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表 ...
- http协议说明
今天公司有同事让我给他讲一讲http..然后自己写了一个示例代码,这如果都看不懂.那我也没办法了.... <?php //这里服务器以apache举例.nginx.iis.他们实际上处理方式的都 ...
- shopnc 导出Excel数据问题实例 && ajax 获取当前值并传递
任务:从商家中心导出数据,各个商品所属情况. 商品导出到Excel文件功能 /导出exel 功能make-in-lemon public function createExcelOp(){ $mode ...
- keepalived 安装和配置
第一步:安装 yum -y install keepalived 第二步:配置 /etc/keepalived/keepalived.conf ! Configuration File for kee ...
- Nginx 变量漫谈(三)
也有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话 ),而在赋值时可以直接修改参数串.我们来看一个 ...
- git 的一些使用和命令
http://git.oschina.net/progit/2-Git-%E5%9F%BA%E7%A1%80.html(pro git) git branch (展示本地当前的所有分支,以及当前 ...
- 映射 SQL 和 Java 类型
http://alex2009.blog.51cto.com/749524/272942 AJAX: http://www.w3school.com.cn/jquery/ajax_ajax.asp h ...
- LINUX下DNS的查看和配置
linux下好像没有专门的DNS查看命令. 用ifconfig命令也是看不到DNS的信息.(也可能是我不知道) 本机的DNS配置信息是在:/etc/resolv.conf [root@localhos ...
- VC++6.0下通过opencv读入图像并反色
第一个opencv测试程序: 不多说,直接上代码,代码注释很详尽: ////////////////////////////////////////////////////////////////// ...
- VC连接SQL server2005
VC连接SQL server2005 1.创建一个MFC对话框程序 界面如下 2.创建一个成员变量 这个成员变量用于连接数据库 3.响应按钮函数OnButton1() 在响应函数里主要有三个函数 函数 ...