我过去几天一直在处理以下代码,但找不到似乎按我想要的方式运行的解决方案。我需要的是在表格的一部分内的一种分页。需要以下操作/事件:
点击上一个或下一个时,顶部的比赛名称应相应地改变。 SO R2 =第2场比赛 - Virgina等......
这是一个棘手的部分,一旦你到达最后一个可见(highligted)列,然后点击下一个应该出现一个新列,所以范围将是R2-R7,依此类推,总数总是不同的。所有Rn的宽度应该保持不变。
我的问题是,这在jQuery中甚至是可能的吗?我研究了一些分页插件,但似乎没有人能够做到这一点。
答案 0 :(得分:0)
使页面涉及整个表。复制每个页面的所有表格结构。
然后,当单击previous
或next
时,您需要一个事件处理程序(应该很简单),只需更新您所在的列,并更新名称(也很简单),只是说:
$("#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
希望这个帮助