国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

跨瀏覽器的事件對象介紹

2024-05-06 14:21:42
字體:
來源:轉載
供稿:網友
代碼如下:
var eventUtil = {
getEvent : function(event){
return event ? event : window.event;
};
getTarget : function(event){
return event.target || event.srcElement;
};
preventDefault : function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
};
stopPropagation : function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
};
};

  當使用一個DOM兼容的瀏覽器時,event 變量僅僅是傳入并被返回,在IE中event參數將是undefined ,因此window.event將會被返回,所以采用eventUtil.getEvent()方法無論在dom還是IE上event返回值都是可用的。
  同理第二個方法,getTarge()方法,先檢測event對象的target屬性,如果存在,則返回targe,若為IE瀏覽器則返回srcElement屬性。保證兼容性。
代碼如下:
btn.onclick = function(event){
event = EventUtil.getEvent(event);
var target = EventUtil.getTarget(event);
};

  第三個方法,preventDefault ()方法,當event對象傳入時,先檢測event對象的preventDefault()方法是否可用,若可用則調用preventDefault方法,若不可用將event的returnValue 設置為false。
  例如:
  
代碼如下:
var link = document.getElementById("myLink");
link.onclick = function(event){
event = EventUtil.getEvent(event);
EventUtil.preventDefault(event);
};

  這段代碼阻止了一個link標簽的默認行為,event對象來自于EventUtil的getEvent方法的返回值 并作為preventDefault()方法的傳入參數。
  第四個方法stopPropagation(),用同樣的方法,首先嘗試DOM方法,之后嘗試cancelBubble屬性,例如下面的代碼:
代碼如下:
var btn = document.getElementById("myBtn");
btn.onclick = function(event){
alert("Clicked");
event = EventUtil.getEvent(event);
EventUtil.stopPropagation(event);
};
document.body.onclick = function(event){
alert("Body clicked");
};

記得這個方法可能阻止事件在瀏覽器的冒泡階段 或者 同時阻止事件在瀏覽器的冒泡和捕獲階段。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 文山县| 甘谷县| 德江县| 固始县| 宾川县| 夏河县| 福州市| 临猗县| 宜兰县| 称多县| 威海市| 江西省| 连南| 乐平市| 郴州市| 高雄市| 烟台市| 太白县| 肇东市| 焉耆| 隆子县| 曲沃县| 韶关市| 绵竹市| 苍梧县| 昌乐县| 桦南县| 广平县| 且末县| 信宜市| 贡山| 仙桃市| 康平县| 惠水县| 黄浦区| 永定县| 福安市| 时尚| 汽车| 阆中市| 邵东县|