Re: [問題] 根據 if 決定叫用哪一個function

看板Ajax作者 (杉斑加紋)時間12年前 (2011/09/01 18:30), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/8 (看更多)
※ 引述《coldollsheep (加油加油^^)》之銘言: : 不好意思 問一個比較粗淺的問題 : 我做了一個按鈕 點了會有聲音 : IE 跟其他瀏覽器是採用不同的方法 : 如以下程式碼 : 可以看到我毎次點擊都必須判斷一次 : //關鍵那顆鈕 : $('#click_btn').mousedown(function (ev) : { : //1.處理音效 : if ($.browser.msie) : { : document.getElementById("soundeffect").src=soundfile; : } else : { : var _audio2 = document.createElement('audio') ; : _audio2.src = soundfile ; : _audio2.play() : } : } : ---- : 有沒有辦法變成這樣 : func1() : { : 實際內容 : } : func2() : { : 實際內容 : } : //1.處理音效 : if ($.browser.msie) : { : playsound() = func1(); <------這裡就是關鍵 我不知道怎麼弄這裡 : 觀念不好不好意思 : } else : { : playsound() = func2(); : } : //關鍵那顆鈕 : $('#click_btn').mousedown(function (ev) : { : //1.處理音效 : playsound(); : } 你可以把函數的寫法改成 var func1 = function() { 實際內容 }; var func2 function() { 實際內容 }; 二種寫法同義, 但這樣可以比較好懂, func1, func2 就是變數, 不過存的是一個函數 變數指給另一個變數, var playsound = func1; 事件可以直接給函數, 所以 $('#click_btn').mousedown( playsound ); 比較好的寫法應該是用 ?: $('#click_btn').mousedown( $.browser.msie ? function (ev) { document.getElementById("soundeffect").src=soundfile; } : function(ev) { var _audio2 = document.createElement('audio') ; _audio2.src = soundfile ; _audio2.play() } ); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.126.105

09/09 12:58, , 1F
我聽到蠻多人說不要用?:耶
09/09 12:58, 1F
文章代碼(AID): #1ENrwtbm (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1ENrwtbm (Ajax)