jQuery事件对象event的属性和方法
事件处理(事件对象、目标元素的获取,事件对象的属性、方法等)在不同浏览器之间存在差异,jQuery在遵循W3C规范的情况下做了封装统一
事件对象常用的属性:
event.type:获取事件的类型,触发元素的事件类型
$("a").click(function(event) {
alert(event.type); // "click"事件
});
event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标,可以确定元素在当前页面的坐标值,是以页面为参考点,不随滑动条移动而变化
$("a").click(function(event) {
alert("Current mouse position: " + event.pageX + ", " + event.pageY );
return false;
});
event.target:获取触发事件的元素
this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;
this和event.target都是dom对象,可以转换为jquery对象:$(this)和$(event.target)
$("a[href=http://www.baidu.com]").click(function(event) {
alert(event.target.href);
return false;
});
event.which:获取在鼠标单击事件中鼠标的左、中、右键(左键1,中间键2,右键3),在键盘事件中键盘的键码值
$("a").mousedown(function(e){
alert(e.which);
return false;
})
event.currentTarget : 获取冒泡前的当前触发事件的DOM对象, 等同于this
事件对象常用的方法:
event.preventDefault() :
阻止默认行为,可以用 event.isDefaultPrevented() 来确定preventDefault是否被调用过了
event.stopPropagation() :
阻止事件冒泡,事件是可以冒泡的,为防止事件冒泡到DOM树上,不触发任何前辈元素上的事件处理函数,可以用 event.isPropagationStopped() 来确定stopPropagation是否被调用过了