事件

事件

javaScript 與 HTML 之間的交互是通過事件實現(xiàn)的

1.事件流

(1)事件冒泡

IE 的事件流叫做事件冒泡(event bubbling),即事件開始時由最具體的元素(文檔中嵌套層次最深的那個節(jié)點)接收,然后逐級向上傳播到較為不具體的節(jié)點(文檔)

(2)事件捕獲

事件捕獲的思想是不太具體的節(jié)點應該更早接收到事件,而最具體的節(jié)點應該最后接收到事件

(3)事件代理

事件委托就是利用事件冒泡,只指定一個事件處理程序,就可以管理某一類型的所有事件

//監(jiān)聽ul下所有的li的事件
window.onload = function(){
  var oUl = document.getElementById("ul1");
  oUl.onclick = function(ev){
    var ev = ev || window.event;
    var target = ev.target || ev.srcElement;
    if(target.nodeName.toLowerCase() == 'li'){
            alert(123);
         alert(target.innerHTML);
    }
  }
}

2.事件處理程序

某個事件的函數(shù)就叫做事件處理程序

(1)HTML事件處理程序

(2)DOM0 級事件處理程序

每個元素(包括 window 和 document)都有自己的事件處理程序屬性,這些屬性通常全部小寫,例如 onclick。

(3)DOM2 級事件處理程序

“DOM2 級事件” 定義了兩個方法,用于處理指定和刪除事件處理程序的操作:
addEventListener()和 removeEventListener()。

//跨瀏覽器的事件處理程序
var EventUtil = {
    addHandler: function(element, type, handler){
        if (element.addEventListener){
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent){
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    },
    removeHandler: function(element, type, handler){
        if (element.removeEventListener){
            element.removeEventListener(type, handler, false);
        } else if (element.detachEvent){
            element.detachEvent("on" + type, handler);
        } else {
            element["on" + type] = null;
        }
    }
};

3.事件對象

在觸發(fā) DOM 上的某個事件時,會產(chǎn)生一個事件對象 event,這個對象中包含著所有與事件有關的信息。包括導致事件的元素、事件的類型以及其他與特定事件相關的信息。例如,鼠標操作導致的事件
屬性和方法
preventDefault() 取消事件的默認行為
stopPropagation() 取消事件冒泡

4.事件類型

(1)UI事件

load,unLoad,abord,error,select,resize,scroll

(2)焦點事件

blur //在元素失去焦點時觸發(fā)。這個事件不會冒泡;所有瀏覽器都支持它。
focus
focusin:在元素獲得焦點時觸發(fā)。這個事件與 HTML 事件 focus 等價,但它冒泡
focusout

(3)鼠標事件

click,dbclick,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup

(4)鍵盤事件

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,696評論 1 11
  • 事件流 JavaScript與HTML之間的交互是通過事件實現(xiàn)的。事件,就是文檔或瀏覽器窗口中發(fā)生的一些特定的交互...
    DHFE閱讀 911評論 0 3
  • JavaScript 程序采用了異步事件驅動編程模型。在這種程序設計風格下,當文檔、瀏覽器、元素或與之相關的對象發(fā)...
    劼哥stone閱讀 1,333評論 3 11
  • JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。事件,就是文檔或瀏覽器窗口中發(fā)生的一些特定的交互瞬...
    threetowns閱讀 414評論 0 0
  • js之事件機制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驅動...
    道無虛閱讀 2,632評論 0 2

友情鏈接更多精彩內(nèi)容