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