jQuery事件對象event的屬性和方法
事件處理(事件對象、目標(biāo)元素的獲取,事件對象的屬性、方法等)在不同瀏覽器之間存在差異,jQuery在遵循W3C規(guī)范的情況下做了封裝統(tǒng)一
事件對象常用的屬性:
event.type:獲取事件的類型,觸發(fā)元素的事件類型
$("a").click(function(event) {
alert(event.type); // "click"事件
});
event.pageX 和 event.pageY:獲取鼠標(biāo)當(dāng)前相對于頁面的坐標(biāo),可以確定元素在當(dāng)前頁面的坐標(biāo)值,是以頁面為參考點(diǎn),不隨滑動條移動而變化
$("a").click(function(event) {
alert("Current mouse position: " + event.pageX + ", " + event.pageY );
return false;
});
event.target:獲取觸發(fā)事件的元素
this和event.target的區(qū)別:
js中事件是會冒泡的,所以this是可以變化的,但event.target不會變化,它永遠(yuǎn)是直接接受事件的目標(biāo)DOM元素;
this和event.target都是dom對象,可以轉(zhuǎn)換為jquery對象:$(this)和$(event.target)
$("a[href=http://www.baidu.com]").click(function(event) {
alert(event.target.href);
return false;
});
event.which:獲取在鼠標(biāo)單擊事件中鼠標(biāo)的左、中、右鍵(左鍵1,中間鍵2,右鍵3),在鍵盤事件中鍵盤的鍵碼值
$("a").mousedown(function(e){
alert(e.which);
return false;
})
event.currentTarget : 獲取冒泡前的當(dāng)前觸發(fā)事件的DOM對象, 等同于this
事件對象常用的方法:
event.preventDefault() :
阻止默認(rèn)行為,可以用 event.isDefaultPrevented() 來確定preventDefault是否被調(diào)用過了
event.stopPropagation() :
阻止事件冒泡,事件是可以冒泡的,為防止事件冒泡到DOM樹上,不觸發(fā)任何前輩元素上的事件處理函數(shù),可以用 event.isPropagationStopped() 來確定stopPropagation是否被調(diào)用過了