[問題] preventdefault前面要加e?

看板Web_Design作者 (小狼)時間9年前 (2015/10/27 20:28), 9年前編輯推噓3(3030)
留言33則, 4人參與, 最新討論串1/1
小弟最近剛學JavaScript 碰到一個地方不太能理解他的意思 不過也不知道關鍵字要怎麼下 當我遇到像是 preventdefault clinetx pagex dataTransfer 前面都要加個e(自行取名) 傳入函數的值也要放個e(自行取名) 請問為甚麼要這樣做呢? 還是JavaScript規定就是要這樣寫 我只要照著寫就好了呢? 他有什麼關鍵字可以查詢學習的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1445948917.A.27B.html

10/27 20:47, , 1F
因為,那是要觸發事件才能取得的,所以你要用事件.XXXXX
10/27 20:47, 1F

10/27 20:51, , 2F
請問觸發事件的意思是什麼?
10/27 20:51, 2F

10/27 20:59, , 3F
建議你可以去找一本入門書慢慢看
10/27 20:59, 3F

10/27 21:06, , 4F
就像你打RPG遊戲會有因為你做了某樣事,就冒出某種事件或
10/27 21:06, 4F

10/27 21:06, , 5F
任務一樣,使用者在做網頁上操作時,也可能會觸發到javasc
10/27 21:06, 5F

10/27 21:06, , 6F
ript規定的事件
10/27 21:06, 6F

10/27 21:28, , 7F
我有在上這方面的課程
10/27 21:28, 7F

10/27 21:28, , 8F
只是老師的講法不太能理解
10/27 21:28, 8F

10/27 21:29, , 9F
所以是有規定的特定event才需要這樣嗎?
10/27 21:29, 9F

10/27 21:30, , 10F
那感覺就是要死背的東西
10/27 21:30, 10F

10/27 21:31, , 11F
比方說你今天addEventListener("click", function (e) {});
10/27 21:31, 11F

10/27 21:32, , 12F
這就是把後面那個function綁定到click這個事件上面,click
10/27 21:32, 12F

10/27 21:32, , 13F
(點擊)下去就會執行後面那個function,點下去的同時會送cli
10/27 21:32, 13F

10/27 21:32, , 14F
ck這個事件給後面那個function。
10/27 21:32, 14F

10/27 21:33, , 15F
function (e)這裡的e名字可以隨便自訂,用來代稱傳進去func
10/27 21:33, 15F

10/27 21:33, , 16F
ion裏面的參數,在綁定事件的時候傳進去的第一個參數一定是
10/27 21:33, 16F

10/27 21:34, , 17F
事件(event)本身,所以這時候方便識別,一般習慣把function
10/27 21:34, 17F

10/27 21:34, , 18F
(e)的e講成e或event,其中e也只是event的縮寫,這裡是看個
10/27 21:34, 18F

10/27 21:34, , 19F
人喜好&看得懂優先,可以自訂。
10/27 21:34, 19F

10/27 21:35, , 20F
至於function (e) {e.preventdefault();}的大括弧裏面的e就
10/27 21:35, 20F

10/27 21:35, , 21F
當然一定要跟前面小括弧的e一樣名字了,因為大括弧裏面那個
10/27 21:35, 21F

10/27 21:35, , 22F
e是指你要取用傳給這個function的e(你在小括弧裏面先稱他e
10/27 21:35, 22F

10/27 21:35, , 23F
了)
10/27 21:35, 23F

10/27 21:36, , 24F
換句話說,你就是在function中執行傳進來的e的preventdefau
10/27 21:36, 24F

10/27 21:36, , 25F
lt這個方法
10/27 21:36, 25F

10/27 21:37, , 26F
我比較不明白e是在傳遞什麼資料呢?
10/27 21:37, 26F

10/27 21:38, , 27F
e是事件本身的物件,他有像是preventdefault這類方法。
10/27 21:38, 27F

10/27 21:40, , 28F
你對連結.addEventListener("click", function (e) {});的
10/27 21:40, 28F

10/27 21:40, , 29F
話,你click那個連結的時候,會送一個click事件的物件進去
10/27 21:40, 29F

10/27 21:40, , 30F
後面那個function
10/27 21:40, 30F

10/27 21:42, , 31F
這個物件就像其他物件一樣會有些屬性和方法,像是呼叫他的
10/27 21:42, 31F

10/27 21:42, , 32F
preventdefault這個方法的話,就不會讓這個事件執行預設動
10/27 21:42, 32F

10/27 21:42, , 33F
作。
10/27 21:42, 33F
感謝Hevak大大的詳細解說,我好像比較了解他的邏輯了,明天再做幾個例子看看,謝謝您! ※ 編輯: powerwolf543 (180.177.172.242), 10/27/2015 23:03:20
文章代碼(AID): #1MBstr9x (Web_Design)
文章代碼(AID): #1MBstr9x (Web_Design)