2016-08-17 7 views
0

私はjQueryを初めて使っています。別のスレッドで見ても、これを理解できないようです。誰かが欲しいのは、子供の手袋で私にこれを壊すほど親切です。類似の要素の複数の関数を簡略化

私は、異なるが類似した要素に対して異なるポップアップを達成するために複数の関数を単純化する方法を理解しようとしています。ここでは完全なもののためにCodePenだ

$("#cooper_link").click(function(e){ 
e.preventDefault(); 
$("#cooper_overlay").fadeIn(500); 
$("#cooper_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$("#quentin_link").click(function(e){ 
e.preventDefault(); 
$("#quentin_overlay").fadeIn(500); 
$("#quentin_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$("#jasper_link").click(function(e){ 
e.preventDefault(); 
$("#jasper_overlay").fadeIn(500); 
$("#jasper_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$("#jordan_link").click(function(e){ 
e.preventDefault(); 
$("#jordan_overlay").fadeIn(500); 
$("#jordan_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$("#james_link").click(function(e){ 
e.preventDefault(); 
$("#james_overlay").fadeIn(500); 
$("#james_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$("#liam_link").click(function(e){ 
e.preventDefault(); 
$("#liam_overlay").fadeIn(500); 
$("#liam_popup").fadeIn(500,function(){$(this).focus();}); 
}); 

$('.close').click(function() { 
$("#cooper_overlay, #quentin_overlay, #jasper_overlay, #jordan_overlay, #james_overlay, #liam_overlay").fadeOut(500); 
$("#cooper_overlay, #quentin_overlay, #jasper_overlay, #jordan_overlay, #james_overlay, #liam_overlay").fadeOut(500); 
}); 

$("#cooper_popup").on('blur',function(){ 
$("#cooper_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

$("#quentin_popup").on('blur',function(){ 
$("#quentin_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

$("#jasper_popup").on('blur',function(){ 
$("#jasper_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

$("#jordan_popup").on('blur',function(){ 
$("#jordan_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

$("#james_popup").on('blur',function(){ 
$("#james_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

$("#liam_popup").on('blur',function(){ 
$("#liam_overlay").fadeOut(500); 
$(this).fadeOut(500); 
}); 

:ここ

は、それが現在のようになりますあなたのマークアップに基づいて

http://codepen.io/chubbaluv/pen/GqZwjE

+2

T彼はおそらく、[Code Review](http://codereview.stackexchange.com/)のより良いトピックです。なぜなら、修正が必要な問題について質問していないからです。 –

+0

もう一度見てください。 @devlincarnate。それは修正されるべき問題です:-) – baao

+0

@ mmm - おそらくあなたは質問を編集し、問題を明確にして問題がはっきりするようにする必要があります。私が見ているのは、コードを単純化する要求だからです。これは一般的にSOの話題とはみなされません。 –

答えて

0

シンプルなソリューション..もちろんのより多くの方法がありますこれを行うが、マークアップに対するコントロールの量はどれくらいあるかわからない。

$(".rider").click(function(e){ 
e.preventDefault(); 
// get the link id 
var linkid = this.id 
// get the unique part of the section 
var id = linkid.replace("_link",""); 
// since all the elements have this part in their name, use it 
$("#"+id+"_overlay").fadeIn(500); 
    $("#"+id+"_popup").fadeIn(500, function() { 
    $(this).focus(); 
    }); 

}); 
+0

私は本当に助けに感謝! 私はこの上のマークアップ(複数の異なる試行で動作するようにjQueryを取得しようとしているから盗まれている)のマークアップを十分にコントロールしているので、マークアップを何かに変更することができます。 私はちょうど異なるCMSをハックするのに十分なHTML/CSSを知っているデザイナーですが、今はもっと複雑なプロジェクトを仕事に取り入れています。このjQueryのことは私には非常に新しく、私は自分の頭を囲むようにしています。私はあなたの助けに十分にあなたに感謝することはできません! –

関連する問題