2010-04-16 4 views
1

Je reçois une erreur JS et ce qu'il faut savoir et comment le résoudre. (JS Noob ici)Javascript Erreur avec DataTable jQuery plugin

Erreur: "tId n'est pas défini"

ligne de JS avec l'erreur: "si (s [i] = .sInstance TID) {"

Plus d'informations

J'utilise le plugin jQuery Data Table (http://datatables.net).

J'ai deux tables avec une classe de "dataTable" chargée sur une page (à l'intérieur des onglets de l'interface utilisateur jQuery). Les tables se comportent comme prévu mais j'obtiens l'erreur ci-dessus dans Firebug.

Ci-joint mon fichier de configuration de la table des données ...

$(document).ready(function() { 

//Take from: http://datatables.net/forums/comments.php?DiscussionID=1507 
// before creating a table, make sure it is not already created. 
// And if it is, then remove old version before new one is created   
var currTable = $(".dataTable"); 
if (currTable) { 
    // contains the dataTables master records 
    var s = $(document).dataTableSettings; 
    if (s != 'undefined') { 
    var len = s.length; 
    for (var i=0; i < len; i++) 
    { 
     // if already exists, remove from the array 
     if (s[i].sInstance = tId) { 
      s.splice(i,1); 
     } 
    } 

    } 
} 

oTable = $('.dataTable').dataTable({ 

     "bJQueryUI": true, 
     "sPaginationType": "full_numbers", 
     "bFilter": false 


}); 
}); 

Que signifie l'erreur signifie et comment puis-je le résoudre?

+0

Il vous dit exactement ce qui ne va pas. La variable que le code utilise ('tId') n'est pas définie. Pour résoudre l'erreur, définissez la variable! –

Répondre

0

Cela signifie: la variable tId n'a jamais été affectée. Par conséquent, vous ne pouvez pas l'affecter à une autre variable.

Quelques erreurs avec ce code.

Premièrement:

var currTable = $(".dataTable"); 
if (currTable) { 

... currTable sera toujours truthy avec jQuery. C'est parce que même un tableau vide est véridique. Le test prévu peut avoir été if (currTable.length > 0)

Il ressemble à ceci est le test pour que ce soit une chaîne ou un tableau:

if (s != 'undefined') { 

Vous pouvez procéder if ($.isArray(s)) {

Enfin, lorsque vous Splice un tableau vous itérez, vous rencontrerez des problèmes avec les index. Je crois plutôt que ce que vous voulez faire est de parcourir les tables retournées par $ ('. Table') et de tester les identifiants de cet élément par rapport à s.

0

I have a two tables with a class of "dataTable" loaded on a page (inside of jQuery UI tabs). The tables render as expected but I get the error above in Firebug.

Je pense que vous devez utiliser un nom de classe différente pour chaque table ...

var oFirstTable; 
var oSecondTable; 

$(document).ready(function() { 

    // class = FirstTable 
    oFirstTable = $('.FirstTable').dataTable({ 
     "bJQueryUI": true, 
     "sPaginationType": "full_numbers", 
     "bFilter": false 
    }); 

    // class = SecondTable 
    oSecondTable = $('.SecondTable').dataTable({ 
     "bJQueryUI": true, 
     "sPaginationType": "full_numbers", 
     "bFilter": false 
    }); 
}); 

J'utilise actuellement 2 DataTables sur quelques pages dans ma demande et ils fonctionnent bien.