2016-10-11 2 views
0

Ich habe eine Webseite, auf http://communitychessclub.com/examine.phpTables Sortierspalte und Lade Seite ohne gamescore

Das Problem auf eine Zeile Funktion klickt das Spiel funktioniert nur auf Tabellenzeilen mit gültigen Spielaufzeichnungen zu laden. Die Tabellen-Header-Tabellenzeile hat Spaltentitel und keine Spieldatensätze. Wenn ich also auf eine Tabelle in der Kopfzeile der Tabellenzeile klicke, wird die Spalte wie gewünscht sortiert, versucht dann aber, ein Spiel zu laden, aber das geht nicht.

$("#cccr").on("click", "tr", function() { 
    window.location.href = 'basic.php?game=' + $(this).attr('game'); 

Kann dies behoben werden? Dies ist die komplette Script-Code:

$(document).ready(function() { 
    $('#cccr').DataTable({ 
     "createdRow": function(row, data, index) { 
      $(row).attr('game', data.game); 
     }, 
     "search": { 
      "search": "<?php echo ($_GET['player']); ?>" 
     }, 
     "order": [ 
      [0, "asc"] 
     ], 
     "keepConditions": true, 
     "paging": true, 
     "deferRender": false, 
     "oSearch": { 
      "sSearch": "<?php echo ($_GET['player']); ?>" 
     }, 
     "aaSorting": [], 
     "bPaginate": false, 
     "bLengthChange": true, 
     "bFilter": true, 
     "bSort": true, 
     "bInfo": true, 
     "sPaginationType": "numbers", 
     "responsive": true, 
     "bAutoWidth": true, 
     "autoWidth": true, 
     "stateSave": false, 
     "ajax": "assets/games.ajax", 
     "pageLength": 6, 
     "columns": [{ 
      "data": "Date", 
      "width": "7rem", 
     }, { 
      "data": "Event" 
     }, { 
      "data": "ECO" 
     }, { 
      "data": "White" 
     }, { 
      "data": "WhiteElo" 
     }, { 
      "data": "Black" 
     }, { 
      "data": "BlackElo" 
     }, { 
      "data": "Result" 
     }, { 
      "data": "game", 
      visible: false 
     }] 
    }); 

    $("#cccr").on("click", "tr", function() { 
     window.location.href = 'basic.php?game=' + $(this).attr('game'); 
    }); 
}); 

Antwort

0

Versuchen Sie, diese Klick-Funktion nur Zeilen-Tabelle (tbody tr) nicht für Tabellenkopfzeile (Thead tr). Eigentlich möchten Sie nur Klick-Elemente unter dem tbody-Element.

$("#cccr").on("click", "tbody tr", function() { 
window.location.href = 'basic.php?game=' + $(this).attr('game');}); 
+0

Einfache prägnant und perfekt! – verlager

0

nur müssen Sie auf jedem beliebigen Daten klicken, ist die Anzeige dann

Sie Ereignishandler für jeden <td> ähnliche

$("#cccr").on("click", "td", function() { 
    window.location.href = 'basic.php?game=' + $(this).attr('game'); 

dieser Geige anhängen macht klar: http://jsfiddle.net/UvjnT/1226/