jQuery事件對象event的屬性和方法
事件處理(事件對象汤踏、目標元素的獲取织鲸,事件對象的屬性婚陪、方法等)在不同瀏覽器之間存在差異砸烦,jQuery在遵循W3C規(guī)范的情況下做了封裝統一
事件對象常用的屬性:
event.type:獲取事件的類型,觸發(fā)元素的事件類型
$("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:獲取觸發(fā)事件的元素
this和event.target的區(qū)別:
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 : 獲取冒泡前的當前觸發(fā)事件的DOM對象, 等同于this
事件對象常用的方法:
event.preventDefault() :
阻止默認行為,可以用 event.isDefaultPrevented() 來確定preventDefault是否被調用過了
event.stopPropagation() :
阻止事件冒泡橱健,事件是可以冒泡的而钞,為防止事件冒泡到DOM樹上,不觸發(fā)任何前輩元素上的事件處理函數拘荡,可以用 event.isPropagationStopped() 來確定stopPropagation是否被調用過了