Re: [問題] 為何要使用 bind 呢?(已解決)

看板Ajax作者 (dalalida)時間12年前 (2013/05/11 04:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《godgiraffe (小鹿)》之銘言: : 各位大大好 : 寫 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 它 : 這樣子,第二種寫法有什麼好處呢??(目前看到好多人都使用第二種寫法,可是 : 我卻不知道第二種寫法的優點在哪邊) : 新手發問,請各位先輩指點指點 有一個不算優點的優點: html裡沒有 id=send_msg 或 js裡沒有 function name=send_msg 網頁不會出錯 雖然這樣會增加 debug困難, 從另一方面來看,這作法降低了 js跟 html的相依性… 降低相依性可以做什麼? 假設今天有一個輸入框, 1. 要驗證已輸入的值, 2. 在使用者輸入一些資料的時候提供建議選項, 3. 最好還可以隨著資料輸入自動調整寬度, (可能還有很多功能會是在程式開發的時候沒提到,但是上線後熊熊想起來的。) 這三個不同的功能可以怎麼做? 先排除全部擠在一個函數裡的做法, <input onkeyup="check(); suggest(); modifyWidth();" /> <input class="check suggest modifyWidth" /> 這兩個有什麼差別? 鍵盤事件偵測不到滑鼠複製貼上,怎麼辦? 好,keyup, keydown, mouseup, mousedown都要執行某個函數…喔,是某幾個函數。 如果今天決定要支援觸控螢幕的話…鍵盤事件更加詭異了,mouse? 那是什麼? 在 html裡用 onclick,干涉到 js實作,這部分應該全權由 js開發者調配。 (雖然通常都是一個人包辦全部……) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.247.116
文章代碼(AID): #1HZLjpfc (Ajax)
文章代碼(AID): #1HZLjpfc (Ajax)