Ошибка JavaScript с плагином DataTable jQuery - PullRequest
1 голос
/ 16 апреля 2010

Я получаю ошибку JS и что нужно знать, что это значит и как ее решить. (JS нуб здесь)

Ошибка:"tId не определен"

Строка JS с ошибкой:"if (s [i] .sInstance = tId) {"

Дополнительная информация

Я использую таблицу данных (http://datatables.net) плагин jQuery.

У меня есть две таблицы с классом «dataTable», загруженным на страницу (внутри вкладок jQuery UI). Таблицы отображаются должным образом, но я получил ошибку выше в Firebug.

Прикрепленный файл конфигурации моей таблицы данных ...

$(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


}); 
});

Что означает ошибка и как ее устранить?

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

У меня есть две таблицы с классом «dataTable» загружен на странице (внутри вкладок jQuery UI). Таблицы рендеринга как и ожидалось, но я получаю ошибку выше в Firebug.

Я думаю, вам нужно использовать разные имена классов для каждой таблицы ...

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
    }); 
});

В настоящее время я использую 2 таблицы данных на нескольких страницах в моем приложении, и они работают хорошо.

0 голосов
/ 16 апреля 2010

Это означает, что оно говорит: переменная tId никогда не была назначена. Поэтому вы не можете присвоить его другой переменной.

Несколько вещей не так с этим кодом.

Во-первых:

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

... currTable всегда будет правдивым с jQuery. Это потому, что даже пустой массив является правдивым. Предполагаемый тест мог быть if (currTable.length > 0)

Похоже, что это тестирование на наличие строки или массива:

if (s != 'undefined') {

Вместо этого вы можете сделать if ($.isArray(s)) {

Наконец, когда вы объединяете массив, по которому вы выполняете итерацию, у вас возникают проблемы с индексами.

Вместо этого я считаю, что вам нужно перебирать таблицы, возвращаемые $ ('. Table'), и проверять идентификаторы этих элементов по s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...