2011-06-27 7 views
0

小さな関数(実際には2)を書きました。 最初に、ul> liはカスタムドロップダウン+フィルタのように同時にリストします。'ul> li'のようなドロップダウン+クラスによるフィルタリング

それは何

:私はもし他の条件で「すべて」のオプションを追加したまで

- when selected an 'li' 
- copy span from inside of it to - > 'a href' (top of the dropdown) 
- get class of the span inside 'a href' - which we just copied 
- hide all div's which does not have selected class (div's and span's have same classes) 

、すべてがうまく働きました。

クロームJSコンソールは未定義で、選択したクラスは、最後のステップ私が間違ってやっている何

$('.content div').not('.' + CheckWhichClassSelected).hide(); 

ときと言っていますか?

jsfiddle:http://jsfiddle.net/MrTest/hLcML/

HTML

<div class="filter"> 
    <a class="dropDownSelect" href="#"> -- select -- </a> 
    <ul class="dropDownList"> 
     <li><span class="filter0">All</span></li> 
     <li><span class="filter1">Filter 1</span></li> 
     <li><span class="filter2">Filter 2</span></li> 
     <li><span class="filter3">Filter 3</span></li> 
     <li><span class="filter4">Filter 4</span></li> 
    </ul> 

</div>  
<div class="tab-menu"> 
</div> 

<div class="content"> 
    <div class="filter1">1</div> 
    <div class="filter2">2</div> 
    <div class="filter3">3</div> 
    <div class="filter4">4</div> 
    <div class="filter1">1</div> 
    <div class="filter2">2</div> 
    <div class="filter3">3</div> 
    <div class="filter4">4</div> 
</div> 

JS:

/*! OnLoad 
---------------------------------------------*/ 
$(document).ready(function() { 

    $('.dropDownSelect').click(function(event) { 
     $(this).next().slideToggle(100); 
    }); 

    $('.dropDownList li').click(function(event) { 
     $(this).parent().slideUp(100); 
     $('.dropDownSelect').empty(); 
     $(this).children().clone().appendTo('.dropDownSelect'); 

     // ShowSelectedClass 
     var CheckWhichClassSelected = $('.dropDownSelect').children().attr('class'); 
     alert(CheckWhichClassSelected); 

     $('.content div').show(); 
     if (CheckWhichClassSelected === filter0) { 
      return false; 
     } 
     else { 
      $('.content div').not('.' + CheckWhichClassSelected).hide(); 
     } 


    }); 


}); 

すべてのヘルプははるかに高く評価。

if (CheckWhichClassSelected === filter0) { 

それは次のようになります:私はあなたがここ2つの頂点を逃したと思います

ピート

答えて

2

if (CheckWhichClassSelected === 'filter0') { 

は、今では正常に動作するようです:

http://jsfiddle.net/hLcML/8/

+0

感謝を!最小のエラーは常に見つけにくい! – Iladarsda