使用jQuery在表内分页

时间:2012-09-07 11:46:59

标签: javascript jquery

我过去几天一直在处理以下代码,但找不到似乎按我想要的方式运行的解决方案。我需要的是在表格的一部分内的一种分页。需要以下操作/事件:

  • 点击上一个或下一个时,顶部的比赛名称应相应地改变。 SO R2 =第2场比赛 - Virgina等......

  • 这是一个棘手的部分,一旦你到达最后一个可见(highligted)列,然后点击下一个应该出现一个新列,所以范围将是R2-R7,依此类推,总数总是不同的。所有Rn的宽度应该保持不变。

我的问题是,这在jQuery中甚至是可能的吗?我研究了一些分页插件,但似乎没有人能够做到这一点。

代码在此处生效:http://jsfiddle.net/yunowork/5r9ZW/

2 个答案:

答案 0 :(得分:0)

使页面涉及整个表。复制每个页面的所有表格结构。

然后,当单击previousnext时,您需要一个事件处理程序(应该很简单),只需更新您所在的列,并更新名称(也很简单),只是说:

$("#title").val(titlearray[columnnumber]); // or something like this

当你到达最后,以编程方式调用页面的任何更改(加载一个新表)。

现在我不确定从哪里获取数据 - 是否已经加载但未显示,或者您是否进行了AJAX调用。如果有插件,你应该使用它。

无论哪种方式,例如。它已经在页面上,您可以在上一个/下一个事件处理程序中说出类似的内容(如果您没有使用插件):

if (columnnumber == lastcolumn) {
  newpagenumber = oldpagenumber + 1; // for next page
  // do this if you don't have a pagination plugin
  $("#page" + oldpagenumber).css("display:none"); // hide previous page
  $("#page" + newpagenumber).css("display:block"); // show next page
  // otherwise use a plugin to switch pages
}

在你的html中,你可以拥有:

<table id="page1" style="display:block"></table>
<table id="page2" style="display:none"></table>
<table id="page3" style="display:none"></table>

这个想法只是让每个表都已经在HTML中,但你只需要显示代表正确页面的表。

答案 1 :(得分:0)

不完美,但可能是一个起点:

我只在'下一个'中测试它。

我已经添加了下一个功能:

var $currCol = $('.highlighted'); //to get the current column

$('.race strong').text($('.highlighted').next('td:first').text()); //To set the title: R1 - R2 - R3 ...

else{
        $currCol.each(function(i,v){
            var k = i + 1;   
            var id = parseInt(v.id.replace('r',''));                
            id++;
            if(k == 1) $(this).clone().text('R'+id).attr('id', 'r'+id).appendTo($('table tr').eq(k));
            else $(this).clone().attr('id', 'r'+id).appendTo($('table tr').eq(k));
        });
    } // to add a new column

希望这个帮助