发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
使用事件自然少不了事件对象. 因为不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异, 导致我们很难跨浏览器使用事件对象.
jQuery中统一了事件对象, 当绑定事件处理函数时, 会将jQuery格式化后的事件对象作为唯一参数传入:
$("#testDiv").bind("click", function(event) { });
关于event对象的详细说明, 可以参考jQuery官方文档: http://docs./Events/jQuery.Event
jQuery事件对象将不同浏览器的差异进行了合并, 比如可以在所有浏览器中通过 event.target 属性来获取事件的触发者(在IE中使用原生的事件对象, 需要访问event.srcElement).下面是jQuery事件对象可以在扩浏览器支持的属性:
$("a").click(function(event) { alert(event.type); });
$("a[href=http://google.com]").click(function(event) { alert(event.target.href); });
$("a").each(function(i) { $(this).bind('click', {index:i}, function(e){ alert('my index is ' + e.data.index); }); });
$("a").mouseout(function(event) { alert(event.relatedTarget); });
$("p").click(function(event) { alert( event.currentTarget.nodeName ); });
结果:P
$("a").click(function(event) { alert("Current mouse position: " + event.pageX + ", " + event.pageY ); });
$("p").click(function(event) { return "hey" }); $("p").click(function(event) { alert( event.result ); });
结果:”hey”
var last; $("p").click(function(event) { if( last ) alert( "time since last event " + event.timeStamp - last ); last = event.timeStamp; });
上面是jQuery官方文档中提供的event对象的属性. 在”jQuery实战”一书中还提供了下面的多浏览器支持的属性, 时间关系我没有尝试每一个属性, 大家可以帮忙验证是否在所有浏览器下可用:
事件对象除了拥有属性, 还拥有事件. 有一些是一定会用到的事件比如取消冒泡 stopPropagation() 等.下面是jQuery事件对象的函数列表:
$("a").click(function(event){ event.preventDefault(); // do something });
方法
$("a").click(function(event){ alert( event.isDefaultPrevented() ); event.preventDefault(); alert( event.isDefaultPrevented() ); });
$("p").click(function(event){ event.stopPropagation(); // do something });
$("p").click(function(event){ alert( event.isPropagationStopped() ); event.stopPropagation(); alert( event.isPropagationStopped() ); });
$("p").click(function(event){ event.stopImmediatePropagation(); }); $("p").click(function(event){ // This function won't be executed });
$("p").click(function(event){ alert( event.isImmediatePropagationStopped() ); event.stopImmediatePropagation(); alert( event.isImmediatePropagationStopped() ); });
这些函数中 stopPropagation() 是我们最长用的也是一定会用到的函数. 相当于操作原始event对象的event.cancelBubble=true来取消冒泡。
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
最详细的JavaScript和事件解读 – 码农网
移除事件监听。监听某个在捕获阶段触发的事件,需要在事件监听函数传递第三个参数 true。所有介绍事件的文章都会说,在使用 addEventLis...
jQuery事件篇
jQuery事件篇。PS:event.target 得到的是触发元素(比如点击事件,即具体点击的那个元素)的 DOM,event.currentTarget 得到的是监听元...
learning jQuery 学习笔记四(+jQuery 1.4.1 API)
learning jQuery 学习笔记四(+jQuery 1.4.1 API)因此我们需要引入bind()方法,通过bind()方法,我们可以指定任何JavaScript事件,并为该事件添加一种行为。jQuery还提供了一些绑定这些标准事件类型的...
jQuery事件与事件对象
事件是脚本编程的灵魂,本篇来介绍jQuery中的事件处理及事件对象. 事件与事件对象。//如果没有参数,则解除匹配元素的所有事件处理函数$(&...
IE和FireFox中JS兼容之event .
IE 中可以直接使用 event 对象,而 FF 中则不可以,解决方法之一如下:var theEvent = window.event || arguments.callee.caller.arguments[0];Js代码 $("p").click(function(event){ ...
前端开发面试题之JavaScript
前端开发面试题之 JavaScript.闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数...
【Python之路】第十四篇
$(".outer div") //匹配所有的后代元素$("parent >child") //匹配所有的子元素$("prev ...
JQuery事件
JQuery事件。事件处理程序中的变量event保存着事件对象,而event.target属性保存着发生事件的目标元素(也就是真正应该对事件做出响应的DOM元素)事件传播和默认操作是相互独立的两套机制,在二者任何一...
深入理解JavaScript系列(24):JavaScript与DOM(下)
我们将了事件,但是还没有将到如何将处理函数和事件管理起来,使用这些事件之前,你首先要注册这些事件句柄,然后描述该事件发生的时候...
微信扫码,在手机上查看选中内容