事件

技術(shù)一般水平有限,有什么錯(cuò)的地方,望大家指正。

事件就是用戶和瀏覽器交互的一種途徑。假如一個(gè)用戶注冊(cè)的功能,我們?cè)谔顚懲昊拘畔⒅螅c(diǎn)擊提交按鈕就可以實(shí)現(xiàn)注冊(cè)功能,要想完成這個(gè)功能所需要的就是點(diǎn)擊事件。我們預(yù)先定義好操作行為,在用戶點(diǎn)擊提交按鈕時(shí)就執(zhí)行我們預(yù)先定好的行為,在本例中我們的代碼邏輯一般就是收集用戶填寫信息,驗(yàn)證信息合法性,利用AJAX與服務(wù)器交互。

這個(gè)過程就好像我們平時(shí)封裝函數(shù)然后調(diào)用函數(shù)一樣,事件其實(shí)也就類似函數(shù)定義函數(shù)調(diào)用這樣的一個(gè)過程,只不過事件函數(shù)的調(diào)用是由用戶的一些操作來(lái)告知瀏覽器,讓瀏覽器在去調(diào)用函數(shù)的。

首先瀏覽器已經(jīng)給我們提供了一列的事件,包括click,keydown等等,為什么還需要自定義事件呢?其實(shí)就是對(duì)我們的行為進(jìn)行更準(zhǔn)確的描述。以上面的用戶注冊(cè)為例我們可以定義一個(gè)名為saveMessage的事件,在點(diǎn)擊提交按鈕時(shí)觸發(fā)這個(gè)事件,好像看起來(lái)更加直觀一些,不過這看起來(lái)和普通的函數(shù)調(diào)用沒什么區(qū)別,仔細(xì)想了想函數(shù)調(diào)用和事件觸發(fā)的區(qū)別就是由我們自己執(zhí)行的函數(shù)就是函數(shù)調(diào)用,不是由我們執(zhí)行的函數(shù)就是事件觸發(fā)??聪旅娴拇a:

復(fù)制代碼
window.onload = function(){ var demo = document.getElementById("demo");
    demo.onclick = handler; function handler(){
        console.log("aaa");
    }
}
復(fù)制代碼

在我們點(diǎn)擊按鈕的時(shí)候就會(huì)打印aaa,而且很明顯的可以看出函數(shù)并不是由我們調(diào)用的而是由瀏覽器來(lái)執(zhí)行的,如果我們直接調(diào)用函數(shù)handler()一樣可以打印aaa但這是由我們調(diào)用的所以

網(wǎng)友評(píng)論