Re: [討論] [jQuery] 相同 class 的按鈕對應到個別 …

看板Ajax作者 (喔喔 :o)時間15年前 (2010/03/18 09:46), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
以效能來說的話可能用 if 或是 switch 應該都會是較快的方法 可是如果 div 的元件一多... if 或是 switch 的判斷式就會變得很長很...醜...囧 而且一改 button 數量... if 跟 switch 又要再改一次 後來我是用 associative array + div 內的 id 做 key 搞定這問題了 之後要擴充的話只要有 event function + 指派 key -> event function 就好了 大概的程式如下: /* 這邊把 function 按照不同 key 去做 assign */ var event1 = function() { alert('event1'); } var event2 = function() { alert('event2'); } var event_table = new Array(); event_table['id1'] = event1; event_table['id2'] = event2; /* assign click_event 給 class 為 button 的元件 */ $(".button").click(click_event); var click_event = function() { event_table[this.id](); //呼叫 function } ※ 引述《lovelycateye (我還想要更多力量)》之銘言: : 基本上我還是覺得給id比較好用。 : 下面是如果是我的話,我會這樣寫,看起來會像是個控制中心。 : 可以把alert換成各個你自己寫的function或是直接寫你要的code。 : 希望能有人來打擊一下我的寫法,我才開始碰程式不到一年,需要人糾正。 : <div class="button" id="btn1">button 1</div> : <div class="button" id="btn2">button 2</div> : <div class="button" id="btn3">button 3</div> : <div class="button" id="btn4">button 4</div> : <div class="button" id="btn5">button 5</div> : <script type="text/javascript"> : function switchCenter(e){ : switch(this.id){ : case 'btn1': : alert(1); : break; : case 'brn2': : alert(2); : break; : default: : alert('others'); : } : } : $('.button').click(switchCenter); : </script> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.31.54 ※ 編輯: kaijajan 來自: 61.222.31.54 (03/18 09:46) ※ 編輯: kaijajan 來自: 61.222.31.54 (03/18 09:48)

03/26 15:54, , 1F
這個方法好像不錯維護。學起來~
03/26 15:54, 1F
文章代碼(AID): #1BeONlxG (Ajax)
文章代碼(AID): #1BeONlxG (Ajax)