使用两个属性合并单击处理程序

时间:2012-10-30 22:12:34

标签: javascript jquery

我有一个带有一个参数的函数:

function magic(el){
 ...
}

我在混合元素/类上有一堆点击处理程序调用函数:

$('#div1').click(function(){ magic('#other-div'); });
$('.crazy-div').click(function(){ magic('.mystery-div'); });
$('#doomed-divv').click(function(){ magic('#shady-div'); });
$('#secret-div').click(function(){ magic('form'); });
$('#div2').click(function(){ magic('p'); });
...

有没有一种很好的方法来巩固这些?也许使用关联数组?

1 个答案:

答案 0 :(得分:2)

创建一个包含键值赋值的对象(当单击特定ID时要作为参数传递的ID)就足够了,然后使用$.each迭代键并设置单击函数他们每个人。

var a = {
   '#div1' : '#other-div',
   '#doomed-divv' : '#shady-div'
};
$.each(a,function(key,value){
    $(key).click(function(){
        magic(value);
    });
});​

JSfiddle