事件處理方法:事件流css
事件流分爲兩種:事件冒泡(從裏到外);事件捕獲(從外到裏)。chrome
IE:只存在事件冒泡瀏覽器
DOM瀏覽器(現代瀏覽器,包括chrome、firefix等):存在兩種事件流,默認事件冒泡。指針
DOM 0最先版本,也是DOM規範,兼容全部瀏覽器;缺點:不能同時添加多個事件,若是寫在行內,會污染全局。code
DOM 2優勢:能夠累加事件;缺點:要作兼容處理。對象
DOM 2累加且作兼容示例:事件
if(document.addEventListener){ p1.addEventListener("click",function(e){//DOM瀏覽器 alert("hello"); },true);//true可選值,表明是冒泡事件 p1.addEventListener("click",function(e){ alert("hi"); }.true); }else{ p1.attachEvent("onclick",function(e){//IE瀏覽器 alert("hello"); }); p1.attachEvent("onclick",function(e){ alert("hi"); }); }
event 事件對象get
獲取事件信息。io
clientX 事件屬性返回當事件被觸發時鼠標指針向對於瀏覽器頁面(或客戶區)的水平座標。//對於瀏覽器頁面event
clientY 事件屬性返回當事件被觸發時鼠標指針向對於瀏覽器頁面(客戶區)的垂直座標。
screenX 事件屬性可返回事件發生時鼠標指針相對於屏幕的水平座標。//相對於屏幕
screenY 事件屬性可返回事件發生時鼠標指針相對於屏幕的垂直座標。
阻止DOM2事件冒泡:// DOM瀏覽器
e.stopPropagation();
阻止IE事件冒泡:
e.cancelBubble=true;
阻止默認事件://DOM瀏覽器
e.preventDefault();
阻止IE默認事件(一樣阻止任何事件的發生):
e.returnValue=false;
節點
獲取節點:
var attrs=d1.attributes;
訪問節點:
attrs['id']//訪問元素節點id屬性或訪問id屬性節點 d1.id; d1.gerAttrbute('id');
IE在table的td/tr,以及select的option不支持innerHTML
var sheets=document.styleSheets(獲取內外全部樣式表)
IE\DOM sheets[0].rule[0].style.height;//調用內部樣式表的第一個的height
DOM sheets[0].cssRule[0].style.height;
最終樣式表(只能獲取,不能設置)
IE:d2.currentStyle.height;
DOM:window.get computedStyle(d2,null).height;