[英]merge jquery repetitive code
我想減少頁面上的代碼量。 我不是JavaScript / jQuery的優秀程序員,所以請多多包涵。
我有以下代碼
$('.testimonial-1').each(function(event){
$(this).find('a.read-more-testimonial-1').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-1').hide();
$('.initial-blockquote-testimonial-2').fadeIn(200).show();
$('.initial-blockquote-testimonial-3').fadeIn(400).show();
$('.initial-blockquote-testimonial-4').fadeIn(600).show();
$('.initial-blockquote-testimonial-5').fadeIn(800).show();
$('.initial-blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-1').fadeIn(1000).show();
$('.blockquote-testimonial-2').hide();
$('.blockquote-testimonial-3').hide();
$('.blockquote-testimonial-4').hide();
$('.blockquote-testimonial-5').hide();
$('.blockquote-testimonial-6').hide();
$('.testimonial-1').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-2').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-3').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-4').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-5').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-6').addClass('col-sm-4').removeClass('col-sm-12');
});
});
$('.testimonial-2').each(function(event){
$(this).find('a.read-more-testimonial-2').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-2').hide();
$('.initial-blockquote-testimonial-1').fadeIn(200).show();
$('.initial-blockquote-testimonial-3').fadeIn(400).show();
$('.initial-blockquote-testimonial-4').fadeIn(600).show();
$('.initial-blockquote-testimonial-5').fadeIn(800).show();
$('.initial-blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-2').fadeIn(1000).show();
$('.blockquote-testimonial-1').hide();
$('.blockquote-testimonial-3').hide();
$('.blockquote-testimonial-4').hide();
$('.blockquote-testimonial-5').hide();
$('.blockquote-testimonial-6').hide();
$('.testimonial-2').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-1').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-3').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-4').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-5').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-6').addClass('col-sm-4').removeClass('col-sm-12');
});
});
$('.testimonial-3').each(function(event){
$(this).find('a.read-more-testimonial-3').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-3').hide();
$('.initial-blockquote-testimonial-2').fadeIn(200).show();
$('.initial-blockquote-testimonial-1').fadeIn(400).show();
$('.initial-blockquote-testimonial-4').fadeIn(600).show();
$('.initial-blockquote-testimonial-5').fadeIn(800).show();
$('.initial-blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-3').fadeIn(1000).show();
$('.blockquote-testimonial-2').hide();
$('.blockquote-testimonial-1').hide();
$('.blockquote-testimonial-4').hide();
$('.blockquote-testimonial-5').hide();
$('.blockquote-testimonial-6').hide();
$('.testimonial-3').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-2').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-1').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-4').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-5').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-6').addClass('col-sm-4').removeClass('col-sm-12');
});
});
$('.testimonial-4').each(function(event){
$(this).find('a.read-more-testimonial-4').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-4').hide();
$('.initial-blockquote-testimonial-2').fadeIn(200).show();
$('.initial-blockquote-testimonial-3').fadeIn(400).show();
$('.initial-blockquote-testimonial-1').fadeIn(600).show();
$('.initial-blockquote-testimonial-5').fadeIn(800).show();
$('.initial-blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-4').fadeIn(1000).show();
$('.blockquote-testimonial-2').hide();
$('.blockquote-testimonial-3').hide();
$('.blockquote-testimonial-1').hide();
$('.blockquote-testimonial-5').hide();
$('.blockquote-testimonial-6').hide();
$('.testimonial-4').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-2').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-3').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-1').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-5').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-6').addClass('col-sm-4').removeClass('col-sm-12');
});
});
$('.testimonial-5').each(function(event){
$(this).find('a.read-more-testimonial-5').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-5').hide();
$('.initial-blockquote-testimonial-2').fadeIn(200).show();
$('.initial-blockquote-testimonial-3').fadeIn(400).show();
$('.initial-blockquote-testimonial-4').fadeIn(600).show();
$('.initial-blockquote-testimonial-1').fadeIn(800).show();
$('.initial-blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-5').fadeIn(1000).show();
$('.blockquote-testimonial-2').hide();
$('.blockquote-testimonial-3').hide();
$('.blockquote-testimonial-4').hide();
$('.blockquote-testimonial-1').hide();
$('.blockquote-testimonial-6').hide();
$('.testimonial-5').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-2').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-3').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-4').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-1').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-6').addClass('col-sm-4').removeClass('col-sm-12');
});
});
$('.testimonial-6').each(function(event){
$(this).find('a.read-more-testimonial-6').click(function(event){
event.preventDefault();
$('.initial-blockquote-testimonial-6').hide();
$('.initial-blockquote-testimonial-2').fadeIn(200).show();
$('.initial-blockquote-testimonial-3').fadeIn(400).show();
$('.initial-blockquote-testimonial-4').fadeIn(600).show();
$('.initial-blockquote-testimonial-5').fadeIn(800).show();
$('.initial-blockquote-testimonial-1').fadeIn(1000).show();
$('.blockquote-testimonial-6').fadeIn(1000).show();
$('.blockquote-testimonial-2').hide();
$('.blockquote-testimonial-3').hide();
$('.blockquote-testimonial-4').hide();
$('.blockquote-testimonial-5').hide();
$('.blockquote-testimonial-1').hide();
$('.testimonial-6').addClass('col-sm-12').removeClass('col-sm-4');
$('.testimonial-2').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-3').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-4').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-5').addClass('col-sm-4').removeClass('col-sm-12');
$('.testimonial-1').addClass('col-sm-4').removeClass('col-sm-12');
});
});
我想合並成這樣的東西
var i;
for (i=1; i<=6; i++)
{
$('.testimonial-'+i).each(function(event){
$(this).find('a.read-more-testimonial-'+i).click(function(event){
var j;
var k=200;
event.preventDefault();
for (j=1; j<=6; j++)
{
if (i=j)
{
$('.initial-blockquote-testimonial-'+j).hide();
$('.blockquote-testimonial-'+j).fadeIn(1000).show();
$('.testimonial-'+j).addClass('col-sm-12').removeClass('col-sm-4');
}
else
{
$('.initial-blockquote-testimonial-'+j).fadeIn(j*k).show();
$('.blockquote-testimonial-'+j).hide();
$('.testimonial-'+j).addClass('col-sm-4').removeClass('col-sm-12');
}
}
});
});
}
能做到嗎?
您的代碼看起來非常正確。 我做了一些小改動:
i
的值。 (否則,您將捕獲i
本身,並且在代碼運行時,循環完成后, i
大概是7。) ===
(相等性測試)而不是=
(賦值)。 $('.testimonial-'+i).each(...)
,這似乎是多余的。 我的代碼版本:
for (var i = 1; i <= 6; i++) {
(function (i) {
$('a.read-more-testimonial-' + i).click(function (event) {
event.preventDefault();
var k = 200;
for (var j = 1; j <= 6; j++)
{
if (j === i) {
$('.initial-blockquote-testimonial-' + j).hide();
$('.blockquote-testimonial-' + j).fadeIn(1000).show();
$('.testimonial-'+j).addClass('col-sm-12').removeClass('col-sm-4');
} else {
$('.initial-blockquote-testimonial-' + j).fadeIn(j * k).show();
$('.blockquote-testimonial-' + j).hide();
$('.testimonial-' + j).addClass('col-sm-4').removeClass('col-sm-12');
}
}
});
})(i);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.