1、事件:瀏覽器客戶端上客戶觸發的行為成為時事件;所有的事件都是天生自帶的,不需要我們去綁定,只需要我們去觸發
當用戶觸發一個事件時,瀏覽器的所有詳細信息都存在一個叫做event的對象上,我們把它叫做事件對象
2、獲取鼠標的坐標
event.clientX;event.clientY
document.οnclick=function(){
event.clientX
event.clientY
}
3、關于event的兼容性
標準:event是undefined
非標準:null
解決兼容: var e=e||windoe.event
4、事件冒泡:
當給父子元素同一事件綁定方法的時候,觸發了子元素的事件,執行完畢后,也會觸發父級元素的相同時間,這種傳播機制叫做事件冒泡
取消事件冒泡:event.cancelBubble=true
5、事件捕獲:
給父子元素用addEventLIstener()綁定統一個事件,會先觸發父元素,然后再傳遞給子元素,這種傳播機制叫做事件捕獲
(1)IE低版本沒有事件捕獲
(2)普通的事件綁定寫法沒有事件捕獲
給元素綁定事件,有兩種
(1)常用的寫法:
obj.οnclick=function(){}
這個寫法有缺點,如果一個元素綁定相同的事件多次,后者會覆蓋前者,因此這個寫法相當于給obj的onclick的屬性賦值
(2)第二種寫法
標準瀏覽器用:addEventListener()
非標準用:attachEvent()
addEventListener(參數1,參數2,參數3)
參數1:事件名,并且不帶"on"
參數2:事件函數
參數3:布爾值,代表捕獲不捕獲,默認值是false,不捕獲單冒泡
attathEvent()和addEventListener()的區別
(1)attachEvent()只用在IE8以下,addEventListener()適合標準瀏覽器
(2)attachEvent()的事件名帶on,addEventListener()的事件名不帶on
(3)attachEvent()函數里面的this是undefined,addEventListener()的函數里面的this是當前元素對象
(4)attachEvent()只有冒泡沒有捕獲,addEventListener()有冒泡也有捕獲
call和apply
都是改變this的指向的方法,而且是函數對象、類、構造函數?
call和apply的第一個參數是null的時候,函數里面的this還是指向原來的指向不變
所有的事件都是異步的!!!