Onclick显示下一个div

时间:2012-06-21 20:34:28

标签: jquery

我有1000个div,其中20个是可见的,剩下的是隐藏的。

在onClick jquery事件中,我希望接下来的20个div可见,依此类推。

3 个答案:

答案 0 :(得分:0)

将20个集合分配给css类,并让您的jQuery方法在该类中显示所有内容。您可以拥有全局js变量跟踪点击次数,然后如果if语句,则显示隐藏相应的部分:

<script type="text/javascript">var numberOfClicks = 0;</script>
<style>.IncurredDate1 {} .IncurredDate2 ... {}</style>
<div class="incurredRow1">blah</div>
<div class="incurredRow2">blah</div>
//in click event
<script type="text/javascript">
function buttonClick(event){
    switch(numberOfClicks )
    {
        case 1:
        ...
        case 20;  
            $(".incurredRow1").show();
            break;
        case 21:
        ...
        case 40:
            $(".incurredRow2").show();
            break;
        default:
            code to be executed if n is different from case 1 and 2
     }
   }();    
</script>

答案 1 :(得分:0)

如果您使用的是jquery,则可以使用.slice()方法。

http://api.jquery.com/slice/

类似的东西:

$('button').click(function(e){
  var divs = $('.mydivs');
  divs.hide().slice(0, 20).show(); // 0 is the starting index
});

你只需要找出逻辑来确定你的起始指数是什么。

我没有非jquery解决方案,也许其他人可以在这方面提供帮助。

答案 2 :(得分:0)

我建议的内容类似于以下内容,但我强烈建议将其转换为函数或插件:

var perSlice = 20; // how many to show on each 'page'

// hides all but the first 'page' of the matched elements
$('#wrap > div').hide().slice(0, perSlice).show();

$('a').click(
    function(e) {
            // reference to the elements being 'paged'
        var divs = $('#wrap div'),
            // the first of the visible 'paged' elements
            firstVisible = divs.filter(':visible:first'),
            // the index of the first visible 'paged' elements
            firstVisibleIndex = firstVisible.index('#wrap div'),
            lastVisible = divs.filter(':visible:last'),
            lastVisibleIndex = lastVisible.index('#wrap div'),
            // the index of the first of the 'paged' elements
            firstIndex = divs.filter(':first').index('#wrap div'),
            lastIndex = divs.filter(':last').index('#wrap div');

        // if you've clicked the a element with id="prev"
        if (this.id == 'prev') {
            // prevents the default action of the link
            e.preventDefault();
            // if the index of the first visible element is the same as the
            // index of the first element
            if (firstVisibleIndex == firstIndex) {
                // don't do anything, and exit
                return false;
            }
            else {
                // otherwise, hide all the paged elements
                divs.hide();
                // and then take a selection of those paged elements, and show them
                divs.slice((firstVisibleIndex) - perSlice, firstVisibleIndex).show();
            }
        }
        else if (this.id == 'next') {
            e.preventDefault();
            if (lastVisibleIndex == lastIndex) {
                return false;
            }
            else {
                divs.hide();
                divs.slice((lastVisibleIndex + 1), (lastVisibleIndex + 1) + perSlice).show();
            }
        }
    });​

JS小提琴演示。

参考文献: