作者powerwolf543 (小狼)
看板Web_Design
標題[問題] preventdefault前面要加e?
時間Tue Oct 27 20:28:35 2015
小弟最近剛學JavaScript
碰到一個地方不太能理解他的意思
不過也不知道關鍵字要怎麼下
當我遇到像是
preventdefault
clinetx
pagex
dataTransfer
前面都要加個e(自行取名)
傳入函數的值也要放個e(自行取名)
請問為甚麼要這樣做呢?
還是JavaScript規定就是要這樣寫
我只要照著寫就好了呢?
他有什麼關鍵字可以查詢學習的嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1445948917.A.27B.html
1F:→ oToToT: 因為,那是要觸發事件才能取得的,所以你要用事件.XXXXX 10/27 20:47
2F:→ powerwolf543: 請問觸發事件的意思是什麼? 10/27 20:51
3F:推 pm2001: 建議你可以去找一本入門書慢慢看 10/27 20:59
4F:推 oToToT: 就像你打RPG遊戲會有因為你做了某樣事,就冒出某種事件或 10/27 21:06
5F:→ oToToT: 任務一樣,使用者在做網頁上操作時,也可能會觸發到javasc 10/27 21:06
6F:→ oToToT: ript規定的事件 10/27 21:06
7F:→ powerwolf543: 我有在上這方面的課程 10/27 21:28
8F:→ powerwolf543: 只是老師的講法不太能理解 10/27 21:28
9F:→ powerwolf543: 所以是有規定的特定event才需要這樣嗎? 10/27 21:29
10F:→ powerwolf543: 那感覺就是要死背的東西 10/27 21:30
11F:推 Hevak: 比方說你今天addEventListener("click", function (e) {}); 10/27 21:31
12F:→ Hevak: 這就是把後面那個function綁定到click這個事件上面,click 10/27 21:32
13F:→ Hevak: (點擊)下去就會執行後面那個function,點下去的同時會送cli 10/27 21:32
14F:→ Hevak: ck這個事件給後面那個function。 10/27 21:32
15F:→ Hevak: function (e)這裡的e名字可以隨便自訂,用來代稱傳進去func 10/27 21:33
16F:→ Hevak: ion裏面的參數,在綁定事件的時候傳進去的第一個參數一定是 10/27 21:33
17F:→ Hevak: 事件(event)本身,所以這時候方便識別,一般習慣把function 10/27 21:34
18F:→ Hevak: (e)的e講成e或event,其中e也只是event的縮寫,這裡是看個 10/27 21:34
19F:→ Hevak: 人喜好&看得懂優先,可以自訂。 10/27 21:34
20F:→ Hevak: 至於function (e) {e.preventdefault();}的大括弧裏面的e就 10/27 21:35
21F:→ Hevak: 當然一定要跟前面小括弧的e一樣名字了,因為大括弧裏面那個 10/27 21:35
22F:→ Hevak: e是指你要取用傳給這個function的e(你在小括弧裏面先稱他e 10/27 21:35
23F:→ Hevak: 了) 10/27 21:35
24F:→ Hevak: 換句話說,你就是在function中執行傳進來的e的preventdefau 10/27 21:36
25F:→ Hevak: lt這個方法 10/27 21:36
26F:→ powerwolf543: 我比較不明白e是在傳遞什麼資料呢? 10/27 21:37
27F:→ Hevak: e是事件本身的物件,他有像是preventdefault這類方法。 10/27 21:38
28F:→ Hevak: 你對連結.addEventListener("click", function (e) {});的 10/27 21:40
29F:→ Hevak: 話,你click那個連結的時候,會送一個click事件的物件進去 10/27 21:40
30F:→ Hevak: 後面那個function 10/27 21:40
31F:→ Hevak: 這個物件就像其他物件一樣會有些屬性和方法,像是呼叫他的 10/27 21:42
32F:→ Hevak: preventdefault這個方法的話,就不會讓這個事件執行預設動 10/27 21:42
33F:→ Hevak: 作。 10/27 21:42
感謝Hevak大大的詳細解說,我好像比較了解他的邏輯了,明天再做幾個例子看看,謝謝您!
※ 編輯: powerwolf543 (180.177.172.242), 10/27/2015 23:03:20