jQueryの新機能で、コードを単純化/最適化する方法を見つけようとしています。なぜなら、今は動作していますが、もっと効率的な方法があるからです。Jqueryコードの簡略化
$(".th_s3studios_layout").click(function(){
$("#portfolio_home").fadeOut(500);
// Fading in the project page
$("#th_s3studios_layout").delay(1000).fadeIn(500);
});
$(".th_mangafan_layout").click(function(){
$("#portfolio_home").fadeOut(500);
// Fading in the project page
$("#th_mangafan_layout").delay(1000).fadeIn(500);
});
$(".th_356_P3").click(function(){
$("#portfolio_home").fadeOut(500);
// Fading in the project page
$("#th_356_P3").delay(1000).fadeIn(500);
});
$(".th_hrycyna_layout").click(function(){
$("#portfolio_home").fadeOut(500);
// Fading in the project page
$("#th_hrycyna_layout").delay(1000).fadeIn(500);
});
対応するHTMLマークアップを次に示します。
<div class="col_16" id="portfolio_home">
<div class="col_04 folio"><div class="th_s3studios_layout">Content 1</div></div>
<div class="col_04 folio"><div class="th_mangafan_layout">Content 2</div>
</div>
<div class="col_16" id="th_s3studios_layout"
<div class="col_04 folio"><div class="preview1">Pop up stuff for content 1</div></div>
<div class="col_04 folio"><div class="preview2">Pop up stuff for content 1</div></div>
</div
<div class="col_16" id="th_mangafan_layout"
<div class="col_04 folio"><div class="preview1">Pop up stuff for content 2</div></div>
<div class="col_04 folio"><div class="preview2">Pop up stuff for content 2</div></div>
</div
この機能は、基本的に1つのボックスをフェードアウトし、別のフェードインでフェードすることがわかります。フェードインするボックスは、.click関数と同じ名前ですが、クラスではなく別のCSS IDコンテナであることがわかります。クラスの名前を関数の同じ名前に一致するidに変更し、残りのコードを再利用する共有関数を作成する方法があるはずです。誰も私にこれについていくつかの光を当てることができますか?
それは非常に難しいのですあなたのHTMLの構造を見ずに何か示唆を提供する。 jQueryトラバーサルメソッドをご覧ください:http://api.jquery.com/category/traversing/ –
明確にするためにHTMLマークアップを追加しました。 – Xenostar