2014-08-30 57 views
2

我有一個Javascript Jtable的一些子表。我想要做的是當行標題第二次點擊時關閉子表。Javascript Jtable關閉兒童表單擊兩次後

所以我已經設置一些全局變量:

var NotesOpen = false; 
var HistoryOpen = false; 
var ElementsOpen = false; 

等f.ex註釋子表我點擊功能如下:

$img.click(function() { 

if (NotesOpen == true) { 
    console.log($(this).closest('tr').next('tr').find(':button').html()); 

    $(this).closest('tr').next('tr').find(':button').click(); 
    $(this).closest('tr').next('tr').find(':button').trigger('click'); 
    $(this).closest('tr').next('tr').find('.jtable-close-button').click(); 
} 
NotesOpen = true; 

我可以看到調試線。它找到了正確的行,因爲它在控制檯窗口中顯示爲<span>Close</span>。如果我只是檢查$(this).closest('tr').next('tr').html()我可以看到它在正確的行。

然而,當我嘗試觸發點擊事件,我只得到一個錯誤:Uncaught Error: cannot call methods on jtable prior to initialization; attempted to call method 'destroy' jquery-2.1.1.js:250

回答

3

該代碼可用於打開或關閉使用點擊圖像圖標子表有幫助的。

//CHILD TABLE DEFINITION FOR "PHONE NUMBERS" 
Phones: { 
    title: '', 
    width: '5%', 
    sorting: false, 
    edit: false, 
    create: false, 
    display: function (studentData) { 

     var $img = $('<img src="/Content/images/Misc/phone.png" title="Edit phone numbers" />'), //Create an image that will be used to open child table 
      parentTable = $("#StudentTableContainer"); 

     //Open | Close child table when user clicks the image 
     $img.click(function(){ 

      var tr = $(this).parents("tr"), 
       isChildRowOpen = parentTable.jtable("isChildRowOpen", tr); 

      if(isChildRowOpen){ 
       $(parentTable.jtable("getChildRow", tr)).slideUp(); 
       return; 
      } 

      // some another code 
     } 
    } 
}