我在http://communitychessclub.com/test.php上有一个dataTables表
我的问题是我需要根据游戏#将整个表格行可点击到链接.该表列出了游戏,用户应该点击一行并加载实际游戏.
我无法理解此问题的先前解决方案.有人可以用简单的语言解释一下吗?
我之前在http://communitychessclub.com/games.php上做了这个(但是那个版本太冗长,并且用php echo写了磁盘)
echo "<tr onclick=\"location.href='basic.php?game=$game'\" >";
<script>$(document).ready(function() {
$('#cccr').dataTable( {
"ajax": "cccr.json",
"columnDefs": [
{
"targets": [ 0 ],
"visible": false,
}
],
"columns": [
{ "data": "game" },
{ "data": "date" },
{ "data": "event" },
{ "data": "eco" },
{ "data": "white_rating" },
{ "data": "white" },
{ "data": "black_rating" },
{ "data": "black" }
]
} );
} );</script>
Run Code Online (Sandbox Code Playgroud)
"cccr.json"看起来像这样,很好:
{
"data": [
{
"game": "5086",
"date": "09/02/2013",
"event": "135th NYS Ch.",
"eco": "B08",
"white": "Jones, Robert",
"white_rating": "2393",
"black": "Spade, Sam",
"black_rating": "2268"
},
...
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
使用fnRowCallback一个游戏ID数据属性添加到您的数据表中的行
...
{ "data": "black" }
],
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
//var id = aData[0];
var id = aData.game;
$(nRow).attr("data-game-id", id);
return nRow;
}
Run Code Online (Sandbox Code Playgroud)
这将为表中的每一行提供游戏ID属性,例如:
<tr class="odd" data-game-id="5086">
Run Code Online (Sandbox Code Playgroud)
然后为click事件创建一个javascript侦听器,并重定向到游戏页面,传递从tr数据属性中获取的游戏ID:
$('#cccr tbody').on('click', 'tr', function () {
var id = $(this).data("game-id");
window.location = 'basic.php?game=' + id;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2877 次 |
| 最近记录: |