【问题标题】:Pagination within a table using jQuery使用 jQuery 在表格中进行分页
【发布时间】:2012-09-07 11:46:59
【问题描述】:

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

  • 单击上一个或下一个时,顶部的比赛名称应随着突出显示的比赛而相应更改。 SO R2 = Race 2 - Virgina 等。

  • 棘手的部分来了,一旦您到达最后一个可见(高亮显示)列并单击下一步,应该会出现一个新列,因此范围将为 R2-R7 等等,总数总是不同的.所有Rn的宽度应该保持不变。

我的问题是,这在 jQuery 中是否可行?如何实现?我研究了一些分页插件,但似乎没有一个能够做到这一点。

代码在这里:http://jsfiddle.net/yunowork/5r9ZW/

【问题讨论】:

  • 您需要在此答案中附加 td 元素:stackoverflow.com/questions/2362982/…
  • 我建议使用一个全新的表格,这比尝试附加/删除每个 td 单元格要容易得多。
  • 好的,我明白了逻辑,在删除第一个 TD 的同时附加一系列新的 TD。我遇到的问题是,这不适用于每次用户单击下一个或上一个时,仅当他到达最后一列时。

标签: javascript jquery


【解决方案1】:

并不完美,但可以作为一个起点:

我只在“下一个”中测试过。

我在下一个函数中添加了:

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

希望有帮助

【讨论】:

  • 似乎可行,我正在考虑的一个选项是在 td 中的 Rn 中创建一个 href 并让标题属性显示在顶部。谢谢!
【解决方案2】:

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

然后,当单击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 中,但您只是显示代表正确页面的表格。

【讨论】:

  • 问题是我无法更改系统的当前代码。我被阻止的地方是以这种特定的方式附加 TD。
猜你喜欢
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 2010-12-07
相关资源
最近更新 更多