2010-04-16 3 views
1

JS 오류가 발생하고 그 의미와 해결 방법을 알 수 있습니다. (여기 JS의 놈)DataTable jQuery 플러그인의 Javascript 오류

오류 : "경우 (S [I] .sInstance = TID) {"

:

오차 JS의

LINE "TID가 정의되지 않은" 추가 정보

데이터 테이블 (http://datatables.net) jQuery 플러그인을 사용하고 있습니다.

페이지 (jQuery UI 탭 내부)에 "dataTable"클래스가로드 된 두 개의 테이블이 있습니다. 테이블은 예상대로 렌더링되지만 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 


}); 
}); 

오류가 무슨 뜻이며 어떻게 그것을 해결하는 방법은 무엇입니까?

+0

정확히 무엇이 잘못되었는지를 알려줍니다. 코드가 사용하고있는 변수 ('tId')는 정의되어 있지 않습니다. 이 오류를 해결하려면 변수를 정의하십시오! –

답변

0

의미는 다음과 같습니다. tId 변수가 할당 된 적이 없습니다. 따라서 다른 변수에 할당 할 수 없습니다.

해당 코드에 몇 가지 문제가 있습니다. 첫째

는 :

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

... currTable 항상 jQuery로 truthy 될 것입니다. 빈 배열조차도 진실이기 때문입니다. 의도 테스트 그것은 다음과 같습니다

그것이 문자열이나 배열 여부에 대한 테스트입니다 if (currTable.length > 0)를되었을 수도 있습니다 : 당신이 배열을 스플 라이스 할 때

if (s != 'undefined') { 

당신은 대신 if ($.isArray(s)) {

마지막을 수행 할 수 당신은 반복을 반복하고 있습니다, 당신은 인덱스에 문제가 생길 것입니다.

대신에 나는 $ ('. table')에 의해 반환 된 테이블을 반복하고 그 요소의 ID를 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.

...

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 DataTables를 사용하고 그들은 잘 작동합니다.

관련 문제