0

我有一个接受一个参数的函数:

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'); });
...

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

4

1 回答 1

2

只需创建一个包含键值分配的对象(单击特定 ID 时将作为参数传递的 ID),然后用于$.each遍历键并为每个键分配一个单击函数就足够了。

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

JSfiddle

于 2012-10-30T22:24:31.103 回答