2016-09-21 12 views
0

単純なコードで、リスト項目を非表示にしています。すべてのリスト項目を表示する - jQueryを使用する

現在、私はそれが働くように、私がLoad moreをクリックするたびに多くを明らかにするようにしています。それは5のバッチでそれをロードしますが、私はLoad moreをクリックすると、順序付けられていないリストのすべてのリスト項目を明らかにしたいと思います。

これを私の現在のコードでどうすればよいですか?

デモ:http://jsfiddle.net/jtg7n4wj/

$(document).ready(function() { 
 
    size_li = $("#myList li").size(); 
 
    x=3; 
 
    $('#myList li:lt('+x+')').show(); 
 
    $('#loadMore').click(function() { 
 
     x= (x+5 <= size_li) ? x+5 : size_li; 
 
     $('#myList li:lt('+x+')').show(); 
 
     $('#showLess').show(); 
 
     if(x == size_li){ 
 
      $('#loadMore').hide(); 
 
     } 
 
    }); 
 
    $('#showLess').click(function() { 
 
     x=(x-5<0) ? 3 : x-5; 
 
     $('#myList li').not(':lt('+x+')').hide(); 
 
     $('#loadMore').show(); 
 
     $('#showLess').show(); 
 
     if(x == 3){ 
 
      $('#showLess').hide(); 
 
     } 
 
    }); 
 
});
#myList li{ display:none; 
 
} 
 
#loadMore { 
 
    color:green; 
 
    cursor:pointer; 
 
} 
 
#loadMore:hover { 
 
    color:black; 
 
} 
 
#showLess { 
 
    color:red; 
 
    cursor:pointer; 
 
    display:none; 
 
} 
 
#showLess:hover { 
 
    color:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="myList"> 
 
    <li>One</li> 
 
    <li>Two</li> 
 
    <li>Three</li> 
 
    <li>Four</li> 
 
    <li>Five</li> 
 
    <li>Six</li> 
 
    <li>Seven</li> 
 
    <li>Eight</li> 
 
    <li>Nine</li> 
 
    <li>Ten</li> 
 
    <li>Eleven</li> 
 
    <li>Twelve</li> 
 
    <li>Thirteen</li> 
 
    <li>Fourteen</li> 
 
    <li>Fifteen</li> 
 
    <li>Sixteen</li> 
 
    <li>Seventeen</li> 
 
    <li>Eighteen</li> 
 
    <li>Nineteen</li> 
 
    <li>Twenty one</li> 
 
    <li>Twenty two</li> 
 
    <li>Twenty three</li> 
 
    <li>Twenty four</li> 
 
    <li>Twenty five</li> 
 
</ul> 
 
<div id="loadMore">Load more</div> 
 
<div id="showLess">Show less</div>

+1

を非表示にすることができますが、それは、クリックするだけですべての項目を表示するのに十分ではないでしょうか? $( '#myList li')。show(); – Gerfried

+0

@Gerfriedそれは非常に良い点です。まもなくこれを試してみます。 – michaelmcgurk

答えて

1

この

size_li = $("#myList li").size(); 
    x = 3; 
    $('#myList li:lt(' + x + ')').show(); 
    $('#loadMore').click(function() { 
    $('#myList li,#showLess').show(); 
    $('#loadMore').hide(); 
    }); 
    $('#showLess').click(function() { 
    $('#myList li:gt(' + x + '),#showLess').hide(); 
    $('#loadMore').show(); 
    }); 

http://jsfiddle.net/5y002xzc/

+0

これを行うと、これは私の結果です:http://jsfiddle.net/jtg7n4wj/1/ – michaelmcgurk

+0

@michaelmcgurkはい – madalinivascu

+0

更新日:http://jsfiddle.net/jtg7n4wj/2/ 微妙な微調整。 'Load more'をクリックしてから' Show Less'をクリックすると、結果は表示されません.-( – michaelmcgurk

1

更新されたコードを使用します

あなたはショーのために李の定義された制限にgtltを使用して

$(document).ready(function() { 
 
    size_li = $("#myList li").size(); 
 
    x=3; 
 
    $('#myList li:lt('+x+')').show(); 
 
    $('#loadMore').click(function() { 
 
     $('#loadMore').hide(); 
 
     $('#showLess').show(); 
 
     $('#myList li:gt(3)').show(); 
 
    }); 
 
    $('#showLess').click(function() { 
 
     $('#loadMore').show(); 
 
     $('#showLess').hide(); 
 
     $('#myList li:gt(3)').hide(); 
 
    }); 
 
});
#myList li{ display:none; 
 
} 
 
#loadMore { 
 
    color:green; 
 
    cursor:pointer; 
 
} 
 
#loadMore:hover { 
 
    color:black; 
 
} 
 
#showLess { 
 
    color:red; 
 
    cursor:pointer; 
 
    display:none; 
 
} 
 
#showLess:hover { 
 
    color:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="myList"> 
 
    <li>One</li> 
 
    <li>Two</li> 
 
    <li>Three</li> 
 
    <li>Four</li> 
 
    <li>Five</li> 
 
    <li>Six</li> 
 
    <li>Seven</li> 
 
    <li>Eight</li> 
 
    <li>Nine</li> 
 
    <li>Ten</li> 
 
    <li>Eleven</li> 
 
    <li>Twelve</li> 
 
    <li>Thirteen</li> 
 
    <li>Fourteen</li> 
 
    <li>Fifteen</li> 
 
    <li>Sixteen</li> 
 
    <li>Seventeen</li> 
 
    <li>Eighteen</li> 
 
    <li>Nineteen</li> 
 
    <li>Twenty one</li> 
 
    <li>Twenty two</li> 
 
    <li>Twenty three</li> 
 
    <li>Twenty four</li> 
 
    <li>Twenty five</li> 
 
</ul> 
 
<div id="loadMore">Load more</div> 
 
<div id="showLess">Show less</div>

関連する問題