jquery事件对象属性小结
2023-06-13 09:14:18 时间
使用事件自然少不了事件对象. 因为不同浏览器之间事件对象的获取,以及事件对象的属性都有差异,导致我们很难跨浏览器使用事件对象.
jQuery中统一了事件对象, 当绑定事件处理函数时, 会将jQuery格式化后的事件对象作为唯一参数传入:
$("#testDiv").bind("click",function(event){});
关于event对象的详细说明,可以参考jQuery官方文档:http://docs.jquery.com/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("myindexis"+e.data.index); }); });
$("a").mouseout(function(event){ alert(event.relatedTarget); });
$("p").click(function(event){ alert(event.currentTarget.nodeName); });
结果:P
$("a").click(function(event){ alert("Currentmouseposition:"+event.pageX+","+event.pageY); });
$("p").click(function(event){ return"hey" }); $("p").click(function(event){ alert(event.result); });
结果:”hey”
varlast; $("p").click(function(event){ if(last) alert("timesincelastevent"+event.timeStamp-last); last=event.timeStamp; });
上面是jQuery官方文档中提供的event对象的属性.在”jQuery实战”一书中还提供了下面的多浏览器支持的属性,时间关系我没有尝试每一个属性,大家可以帮忙验证是否在所有浏览器下可用:
meta键就是PC机器的Ctrl键,或者Mac机器上面的Command键
事件对象除了拥有属性,还拥有事件.有一些是一定会用到的事件比如取消冒泡stopPropagation()等.下面是jQuery事件对象的函数列表:
$("a").click(function(event){ event.preventDefault(); //dosomething });
preventDefault()
方法
$("a").click(function(event){ alert(event.isDefaultPrevented()); event.preventDefault(); alert(event.isDefaultPrevented()); });
$("p").click(function(event){ event.stopPropagation(); //dosomething });
stopPropagation()
方法
$("p").click(function(event){ alert(event.isPropagationStopped()); event.stopPropagation(); alert(event.isPropagationStopped()); });
$("p").click(function(event){ event.stopImmediatePropagation(); }); $("p").click(function(event){ //Thisfunctionwon"tbeexecuted });
stopImmediatePropagation()
方法
$("p").click(function(event){ alert(event.isImmediatePropagationStopped()); event.stopImmediatePropagation(); alert(event.isImmediatePropagationStopped()); });
这些函数中 stopPropagation() 是我们最长用的也是一定会用到的函数.相当于操作原始event对象的event.cancelBubble=true来取消冒泡.
相关文章
- jQuery最方便的前端验证方式2种(非空验证与比较验证)
- jQuery给动态添加的元素绑定事件的方法详解编程语言
- jquery关于on click事件的理解详解编程语言
- jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
- 基于jquery的让textarea自适应高度的插件
- 结构/表现/行为完全分离的选项卡(jquery版和原生JS版)
- jQuery学习笔记之jQuery的事件
- Jquery知识点三jquery表单对象操作
- 初识JQuery实例一(first)
- 读jQuery之十三添加事件和删除事件的核心方法
- JQuery获取各种宽度、高度(format函数)实例
- jquery触发a标签跳转事件示例代码
- 2013年优秀jQuery插件整理小结
- jquery实现tr元素的上下移动示例代码
- jquery复选框全选/取消示例
- JQuery文本改变触发事件如聚焦事件、失焦事件
- JQuery中Ajax的Post提交在IE下中文乱码的解决方法
- 浅谈jQuery事件源码定位问题
- JQuery在线引用及测试引用是否成功
- jquery单选框radio绑定click事件实现方法
- jQuery实现的一个tab切换效果内部还嵌有切换
- jQuery事件用法实例汇总
- jquery单行文字向上滚动效果的实现代码