2014-10-07 86 views
1

我正在使用jQuery數據表來管理列表o公司。
一切都很好,除了我必須刪除一行的部分。
對於第一行刪除工作很好,但如果我刪除我的Firefox控制檯中的另一行它顯示第一行刪除,這一個。jQuery Datatable刪除行問題

如果我刪除第三行,它會顯示刪除的所有行。

$s('body').on('click', '.del-firm', function(){ 
    var aPos = oTable.fnGetPosition($s(this).closest('tr')[0]); 
    var firm = $s(this).data('firm'); 
    $s('#client-firms').block({ 
     message: $s('.confirm-block'), 
     overlayCSS: { 
      backgroundColor: '#363636', 
      cursor: 'default' 
     }, 
     css : { 
      border: '1px solid #D0D0D0', 
      background: 'linear-gradient(to bottom, #fcfcfc 0%, #fbfbfb 39%, #eeeeee 84%, #ebebed 100%) repeat scroll 0 0 rgba(0, 0, 0, 0)', 
      borderRadius: '3px', 
      color: '#707070', 
      padding: '5px', 
      cursor: 'default' 
     } 
    }); 
    $s('#yes').click(function(){ 

     $s('#client-firms').block({ 
      message: 'Se proceseaza' 
     }); 
     oTable.fnDeleteRow(aPos); 
     $s.ajax({ 
      type: 'post', 
      url: 'index.php?controller=servlet&method=del_firm', 
      data: { 
       'id': firm 
      }, 
      success: function(data){ 
       $s('#client-firms').unblock(); 
      } 
     }); 
     newRow = false; 
    }); 
    $s('#no').click(function(){ 
     $s('#client-firms').unblock(); 
     return false; 
    }); 
}); 
+0

試無功者= oTable.fnGetPosition($ S(本).closest( 「TR」)得到(0)); – 2014-10-07 09:12:17

+0

我認爲$ s(this).closest(「tr」)。get(0)與$ s相同(this).closest(「tr」)[0] – speedy 2014-10-07 09:17:07

+0

您可能需要在您的fnDraw()成功回調。 – markpsmith 2014-10-07 09:22:10

回答

2

我會這麼做:

$s('#client-firms').on('click', '.del-firm', function(){ 
     $s(this).closest('tr').addClass('selected'); 
     var firm = $s(this).data('firm'); 
     var row = $s('#client-firms').find('.selected'); 


     $s('#client-firms').block({ 
      message: $s('.confirm-block'), 
      overlayCSS: { 
       backgroundColor: '#363636', 
       cursor: 'default' 
      }, 
      css : { 
       border: '1px solid #D0D0D0', 
       background: 'linear-gradient(to bottom, #fcfcfc 0%, #fbfbfb 39%, #eeeeee 84%, #ebebed 100%) repeat scroll 0 0 rgba(0, 0, 0, 0)', 
       borderRadius: '3px', 
       color: '#707070', 
       padding: '5px', 
       cursor: 'default' 
      } 

     }); 

     $s('#no').click(function(){ 
      $s('#client-firms').unblock(); 
      return false; 
     }); 

    }); 

    $s('#yes').on('click' , function(){ 
     var row = $s('#client-firms').find('.selected'); 
     var firm = row.find('.del-firm').data('firm'); 

     $s('#client-firms').block({ 
      message: 'Se proceseaza' 
     }); 


     $s.ajax({ 
      type: 'post', 
      url: 'index.php?controller=servlet&method=del_firm', 
      data: { 
       'id': firm 
      }, 
      success: function(){ 
       $s('#client-firms').unblock(); 
       oTable.row(row).remove().draw(); 
      } 
     }); 

     newRow = false; 
     oTable.draw(); 

    }); 
+0

爲此,您需要將您的數據表升級到1.10.2 – ciprian2301 2014-10-08 08:30:49

+0

希望這能起作用 – speedy 2014-10-08 08:33:43