1

jQuery のベスト プラクティスと、コードの反復を回避してエレガントなコードを使用する方法を学びたいです。

私は書いた:

<script type="text/javascript">
  // Change the category name with the filter
  $(function() {

    // Featured
    $('.featured').click(function() {
      $('.categoryTitle h1').hide().html('Featured').fadeIn('slow');
    });
    // Web
    $('.web').click(function() {
      $('.categoryTitle h1').hide().html('Web').fadeIn('slow');
    });
    // Brand
    $('.brand').click(function() {
      $('.categoryTitle h1').hide().html('Brand').fadeIn('slow');
    });
    // Print
    $('.print').click(function() {
      $('.categoryTitle h1').hide().html('Print').fadeIn('slow');
    });
    // All
    $('.all').click(function() {
      $('.categoryTitle h1').hide().html('All').fadeIn('slow');
    });
  });
</script>

HTML

<ul id="filters">
    <li><a class="featured" href="#" data-filter=".feature-this">Featured</a></li>
    <li><a class="web" href="#" data-filter=".category-web">Web</a></li>
    <li><a class="brand" href="#" data-filter=".category-brand">Brand</a></li>
    <li><a class="print" href="#" data-filter=".category-print">Print</a></li>
    <li><a class="all" href="#" data-filter="*">Show All</a></li>
</ul>

<div class="categoryTitle"> <h1>Featured</h1> </div>

これは可能な限りエレガントですか、それともDOMへの飛び込みを止める方法がありませんか?

jQueryプラグインであるIsotopeを使用していることに注意してください。

編集現在カテゴリタイトルを変更している回答はありませんが、デフォルト値がFeaturedであることを省略しました。

4

5 に答える 5

6

これはそれを行う必要があります:

<script type="text/javascript">
$(function() {
    $('#filters').on('click', 'a', function() {
        $('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow');
    });
});
</script>
于 2012-09-21T10:00:54.217 に答える
1

このデモを試す

<script type="text/javascript">
$(function() {
    $('#filters').on('click', 'a', function() {
        $(".categoryTitle").find("h1").hide().html($(this).text()).fadeIn('slow');
    });
});
</script>
于 2012-09-21T10:02:06.240 に答える
1
function change(id){
$('.categoryTitle h1').hide().html(id).fadeIn('slow');
}
于 2012-09-21T09:58:59.080 に答える
0
$(document).ready(function(){
   $('ul#filters li a').click(function(){
           $('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow')

   });
});
于 2012-09-21T10:03:05.093 に答える
0

次のように簡単です。

  $('#filters a').click(function() {
        $('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow');
  });
于 2012-09-21T10:01:55.280 に答える