作者kaijajan (喔喔 :o)
看板Ajax
标题Re: [讨论] [jQuery] 相同 class 的按钮对应到个别 …
时间Thu Mar 18 09:46:20 2010
以效能来说的话可能用 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)
1F:推 lovelycateye:这个方法好像不错维护。学起来~ 03/26 15:54