2013-09-28 61 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,我沒有看到任何理由爲什麼它應該這樣工作,你能分享你嘗試過的確切代碼嗎? –