作者godgiraffe (小鹿)
看板Ajax
標題[問題] 為何要使用 bind 呢?
時間Fri May 3 11:05:40 2013
各位大大好
寫 php javascript 寫了約1年多了@_@
也使用過 dojo, jquery 這些東西..
最近想到一個問題,既然可以這樣寫
<input type="button" id="send_msg" name="send_msg" onClick="send_msg()">
那為什麼有些人要這樣子寫呢?(使用 jquery 中的 bind )
$("send_msg").bind("click", function (){
.....
});
使用 bind 這種寫法不是很不直覺嗎?(對我來說啦)
第一種寫法的 debug 流程:
尋找名為 send_msg 的按鈕 -> 看它 click 的時候會做什麼
第二種寫法的 debug 流程:
尋找名為 send_msg 的按鈕 -> 結果發現它 html 中, onClick 沒寫東西 ->
再接著去尋找是不是有用 jquery 去 bind 它
這樣子,第二種寫法有什麼好處呢??(目前看到好多人都使用第二種寫法,可是
我卻不知道第二種寫法的優點在哪邊)
新手發問,請各位先輩指點指點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.50.43
※ 編輯: godgiraffe 來自: 60.250.50.43 (05/03 11:18)
1F:推 lgzenith:主要目的是HTML Javascript明確的分開 05/03 11:31
3F:→ MangoTW:匿名 05/03 11:32
4F:推 mrbigmouth:第一種作法在做大專案時 哪天某名白目給你在同頁面的 05/03 11:33
5F:→ mrbigmouth:某個角落加了另一個名叫send_msg的函式你就要哭了 05/03 11:33
6F:→ mrbigmouth:找bug都找不到在哪 05/03 11:33
7F:→ mrbigmouth:第二種寫法debug時可以直接檢查該元素的event bind 05/03 11:35
8F:→ mrbigmouth:像chrome瀏覽器都還可以直接在event listening裡看到 05/03 11:35
9F:→ mrbigmouth:點擊後還能幫你直接跳到程式碼裡面呢 05/03 11:36
10F:→ mrbigmouth:常寫較大的專案就知道了 第二種的可維護性>>>>>第一種 05/03 11:36
11F:→ mrbigmouth:補充 chorme瀏覽器你可以直接在元素上點右鍵"檢查元素" 05/03 11:37
12F:→ mrbigmouth:在DOM樹狀裡點擊要檢查的元素後,右邊的元素細節裡就有 05/03 11:38
13F:→ mrbigmouth:一欄是Event Listeners 那邊可以直接跳到程式碼所在 05/03 11:38
14F:推 duck10704:原來如此 @@ 05/03 12:10
原來如此 謝謝各位大大清楚的解說,看來還是第二種寫法比較好一點!
※ 編輯: godgiraffe 來自: 60.250.50.43 (05/03 12:39)
15F:→ Yadsmood:個人超討厭看到第一種 看到能改都會改掉 05/03 15:46
16F:→ s25g5d4:樓上+1 05/03 18:39
17F:推 matrixki:忘了加 # ... lol 05/04 16:27
※ 編輯: godgiraffe 來自: 60.250.50.43 (05/09 13:45)