2013-07-16 67 views
0

我想我失去了一些東西簡單而明顯的在這裏 - 我工作的一個網站,我需要過濾組合類別,也顯示出對鏈接點擊的類別描述,但不適用於「全部」列表項。jQuery的隱藏()不工作

頁面加載正常,然後我可以點擊並篩選類別/描述,但是如果您點擊返回到「全部」,即使應該隱藏最後點擊的類別描述仍然存在。

這裏是dev的網站(WordPress的) - http://foothilltile.com/dev/products/

下面是相關代碼:

<ul class="filter-nav"> 
    <li> 
    <h4><?php _e("Filter:", "elemis"); ?></h4> 
    </li> 
    <li class="selected-1 all"><a href="#" data-value="all"> 
    <h4><?php _e("All", "elemis"); ?></h4> 
    </a></li> 
    <?php 
     $categories= get_categories('taxonomy=kind&orderby=id'); 
     foreach ($categories as $cat) { 
     $input = '<li><a href="#" data-value="'.$cat->category_nicename.'" class="'.$cat->category_nicename.'"><h4>'; 
     $input .= $cat->cat_name; 
     $input .= '</h4></a></li>'; 
     echo $input; 
     } 
    ?> 
</ul> 
<div class="clear"></div> 
<!-- End Portfolio Navigation --> 

<div id="category-descriptions"> 

    <ul class="descriptions-list"> 
     <li class="all"></li> 
     <?php 
      $categories= get_categories('taxonomy=kind&orderby=id'); 
      foreach ($categories as $cat) { 
      $input = '<li class="cat-desc '.$cat->category_nicename.'">'; 
      $input .= $cat->description; 
      $input .= '</li>'; 
      echo $input; 
      } 
     ?> 

    </ul> 
</div> <!--/category-descriptions -->` 

然後是JS:

jQuery(document).ready(function($) { 
    $('.filter-nav li a').click(function() { 
    // fetch the class of the clicked item 
    var ourClass = $(this).attr('class'); 

    if (ourClass == 'all') { 
     // this should hide the li's on load - but doesn't? 
     $('.descriptions-list').children('li.cat-desc').hide(); 
    } 
    else { 

     // hide all elements that don't share ourClass 
     $('.descriptions-list').children('li:not(.' + ourClass + ')').hide(); 
     // show all elements that do share ourClass 
     $('.descriptions-list').children('li.' + ourClass).show(); 
    } 
    return false; 
    }); 
}); 

而唯一相關的CSS是li.cat-desc設置爲顯示:無。

任何建議,將不勝感激。我一直在混淆jQuery代碼的順序(當然,noob),所以提前感謝您的幫助。

回答

0

錨爲「全部」無級「所有」 ......這就是問題。該類被設置爲 鋰元素... 的類添加到一個元素,它應該是工作

+0

非常感謝s4ty - 這正是我看到 - 我的眼睛只是不停地失蹤了。 – Max

0

click事件被分配到錨標記a所以$(this).attr('class');將把錨標記類屬性。所以不是這個你應該相當試試這個

var ourClass =$(this).parent("li").attr('class');

或者可能只是

var ourClass =$(this).parent().attr('class');

+0

喜Dharmesh - 感謝你回答 - 這實際上並沒有解決我的問題(因爲我想要得到的類錨),但它幫我看看代碼新鮮,看到的問題是,「所有」列表項沒有「全部」類。我已經把它整理好了。再次感謝! – Max