2013-09-28 52 views
0

我是js和jQuery的新手,我写了一些代码,我认为可以优化一下。以下是我有:优化重复和平的jQuery代码

$(".team-member.personX").click(function(){ 
    $(this).children(".img-mask").attr("src", "images/img-mask-active.png"); 
    $(".member-info.personX").fadeIn(); 
}); 
$(".member-info.personX .close").click(function(){ 
    $(".team-member.personX .img-mask").attr("src", "images/img-mask.png"); 
    $(".member-info.personX").fadeOut(); 
}); 

在主要我想问的是有一种方法如何将替换 - X -1,2,3,4不重复相同的代码4次。 任何帮助将不胜感激。

+0

使用包含元素的新类添加另一个元素,然后它将适用于所有没有数字的元素。 –

+0

请发布您的HTML。有很多更简单的方法来做你想做的事情。 –

回答

0

OK,我想它了。我发现优化代码的最简单方法是使用函数调用。

例子:

function on(x){...} 
$(person1).click(function{ on(1) }) and e.t.c. 

这是不是最好的解决方案,但它的简单和它的作品。

0

这是关于一般的Javascript,而不是特定的jQuery。

一个经典的循环例子,实际上。你可以使用一个for循环:

for(i = 1; i <= 4; i++) 
{ 
    //actions utilizing i taking values from 1 to 4 
} 

......而事实上,字符串可以使用+号码方便地组合:

$(".member-info.person" + i).fadeIn(); //an example action 
+0

我之前尝试过这种方法 - 无效,因为点击人物效果会应用到循环中的所有元素上。任何其他想法? – NoSense

+0

@NoSense,我没有看到任何理由为什么它应该这样工作,你能分享你尝试过的确切代码吗? –