我有一个函数保持几乎不变,除了不断变化的类名。我希望能够让代码少一点文字。我该如何去做它只是一个小功能,而不是重复它n次。我的关注也是关于删除被点击的最后一个活动类。我在这里只提供了2个实例,但是这个代码重复n次数。任何想法都将不胜感激。重复功能,我怎么可以将它们合并?
$('a.app1-preview').click(function() {
//remove last active classes
$(".app2").removeClass('active');
$(".app2-preview").removeClass('active');
//Add active class for this
$(this).parent().addClass('active');
$(this).addClass('active');
$('.app-preview-2').fadeOut("slow", function() {
$('.app-preview-1').fadeIn("slow");
});
});
$('a.app2-preview').click(function() {
//remove last active classes
$(".app1").removeClass('active');
$(".app1-preview").removeClass('active');
//Add active class for this
$(this).parent().addClass('active');
$(this).addClass('active');
$('.app-preview-1').fadeOut("slow", function() {
$('.app-preview-2').fadeIn("slow");
});
});
HTML代码:
<div class="app-container">
<ul class="apps">
<li class="app1">
<a title href="#" class="app1-preview blocklink">
<span>ANOTHER<br /> APP</span>
</a>
</li>
<li class="app2">
<a title href="#" class="app2-preview blocklink">
<span>SECOND<br /> APP</span>
</a>
</li>
</div>
@Downvoters,为什么downvote?这似乎完全有效.... – epoch
为什么你的课程如此具体(“app1”,“app2”)?在我看来,你正在使用他们像ids。您可以使用更通用的方式编写此代码,因为在您的点击处理程序中'this this'标识了单击项目,并且与$(“.active”)匹配的元素必须是之前激活的项目。 – nnnnnn
大家好,谢谢你的答案。这些类是特定的,因为每个类都使用不同的背景图像和颜色。 – user1038814