JavaScript中的e?javascript
e是事件對象,就是js事件相關信息對象,並且根據不一樣的事件,屬性值會不同。好比 obj.onclick=function(e){java
console.log(e);瀏覽器
}異步
這裏的e就是obj點擊事件的事件對象。函數
一個完整的事件系統,一般存在如下三個角色:spa
事件對象:用於儲存事件的狀態。好比事件在其中發生的元素(e.srcElement),鍵盤按鍵的狀態,鼠標的位置,鼠標的按鈕的狀態。事件對象由一個事件源生成。對象
何時產生事件對象?索引
當用戶點擊某個事件源的時候,就產生了一個事件對象。當事件監聽器被觸發時,就是監聽器相應函數,事件就會被執行。該事件的本質就是一個函數,而這個函數的形參就收一個even對象,也就是事件對象。事件
事件源對象:當前事件在操做的對象,過索引機制獲得的對象(元素節點button、submit等什麼的),文檔對象,window對象 ,XMLHttpRequest對象等。ip
事件監聽器:調用事件處理方法的對象。當一個事件源生成一個事件對象時,在IE中,事件對象恆爲全局屬性window.event的分身。onclick,onmousemove之類的事件屬性,它們充當事件監聽器(事件驅動開關),onclick後面的函數就是回調函數(事件驅動程序),這是異步執行的。
JavaScript裏面var e=window.event;var obj=e.srcElement;什麼做用?
var e=window.event;
是獲取事件對象,這裏是IE下的,event是window的一個屬性;
var obj=e.srcElement;
是獲取發生事件的那個元素,這個元素是一個對象,也就是事件源對象。這也是IE下的。
要實現全部瀏覽器兼容,就用如下代碼:
var e = window.event || event;
var obj = e.srcElement || e.target
有以下題目:
1.請實現,鼠標點擊頁面中的任意標籤,alert該標籤的名稱.(注意兼容性)
解答:<script type="text/javascript">
document.onclick=function(e){
var e=(e||window.event);//獲取事件對象
var o=e["target"]||e["srcElement"];//獲取發生事件的元素,即事件源
alert(o.tagName.toLowerCase());
}
</script>
document 簡單的理解就是頁面。
onclick 是點擊事件。
document.onclick 就是給頁面添加點擊事件。