2017-10-06 12 views
0

私は最初の10要素をロードしようとしています。 スタックオーバーフローソリューションを使用しています。こちらをご覧ください。 jQuery load first 3 elements, click "load more" to display next 5 elements。 今私はいくつかの変更をしようとしています。 1:10の要素を表示して、さらにタグを表示します。 tootle hideとshowで。 2:もっと多くのボタンをクリックしてからすべてのli要素を表示し、すべての要素がロードされた後、ボタンを表示してボタンを変更し、さらにボタンを押して表示します。 jqueryのjquery toogleを非表示にしてトグル表示

<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> 

ショー.Thanksになります以下は非表示になり、よりボタンをロードします示し

$(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').click(function() { 
     x=(x-5<0) ? 3 : x-5; 
     $('#myList li').not(':lt('+x+')').hide(); 
    }); 
}); 

CSS

#myList li{ display:none; 
} 
#loadMore { 
    color:green; 
    cursor:pointer; 
} 
#loadMore:hover { 
    color:black; 
} 
#showLess { 
    color:red; 
    cursor:pointer; 
} 
#showLess:hover { 
    color:black; 
} 

答えて

0
^O ^以下同じ

$(document).ready(function() { 
 
    size_li = $("#myList li").size(); 
 
    x=10; 
 
    $('#myList li:lt('+x+')').show(); 
 
    if (size_li > 10) { 
 
     $('#loadMore').show(); 
 
    } 
 
    $('#loadMore').click(function() { 
 
     $('#myList li, #showLess').show(); 
 
     $(this).hide(); 
 
    }); 
 
    $('#showLess').click(function() { 
 
     $('#showLess, #myList li').hide(); 
 
     $('#loadMore, #myList li:lt('+x+')').show(); 
 
    }); 
 
});
#myList li{ display:none; 
 
} 
 
#loadMore { 
 
    display: none; 
 
    color:green; 
 
    cursor:pointer; 
 
} 
 
#loadMore:hover { 
 
    color:black; 
 
} 
 
#showLess { 
 
    display: none; 
 
    color:red; 
 
    cursor:pointer; 
 
} 
 
#showLess:hover { 
 
    color:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.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>

+0

Xupitan @では、show hideとtoggle showを切り替えることができます。 sshowイベントを隠す場所。私はこの質問に満足しています –

関連する問題