2012-12-15 39 views
8

tôi đã tạo ra một bảng jquery rằng bất cứ lúc nào cần phải được dọn sạch và tái dân cư thưa thớt, phương pháp rõ ràng của tôi là thế này:JQuery TableSorter bảng rõ ràng thông tin

//Clear table content before repopulating values 
$('#table tr:gt(0)').remove(); 

Bây giờ tôi đang cố gắng để sử dụng tablesorter để sắp xếp một cột cụ thể, nhưng vấn đề của tôi là khi tôi cho phép tablesorter:

//Initialize tablesorter 
$("table").tablesorter(); 

phương pháp thanh toán bù trừ bảng không hoạt động nữa, nó chỉ giữ thêm các dữ liệu mới với các dữ liệu cũ, tạo ra rất nhiều thông tin lặp lại.

Vui lòng giúp

Trả lời

1

Tôi không biết lý do tại sao nó không hoạt động. Là nó làm việc mà không có plugin tablesorter?

Tại sao gọi tablesorter() trên table nhưng cố gắng xóa các hàng khỏi #table? Typo?

Thử ghi nhật ký các đối tượng jQuery cho $('#table'), $('#table tr')$('#table tr:gt(0)') và xem mọi thứ có chính xác không.

15

Để cập nhật tablesorter, một "cập nhật" cần phải được kích hoạt trước khi nó sẽ cập nhật bộ nhớ cache của nó

$('table').trigger('update'); 

Bạn cũng có thể sử dụng được xây dựng trong chức năng để xóa các bảng

$.tablesorter.clearTableBody(table); 

đây là mã được kết hợp từ this demo

var $table = $('table'); 

// use built in clear function 
$.tablesorter.clearTableBody($table[0]); 
$table 
    .append('<tr><td>george</td><td>papard</td><td>68</td><td>19.99</td><td>55%</td><td>+3</td></tr>') 
    .trigger('update'); 
+0

làm thế nào tôi có thể duy trì các ưu đãi sắp xếp như vậy? – apostolov

+0

@apostolov Hãy thử [fork of tablesorter] của tôi (http://mottie.github.io/tablesorter/docs/index.html), một [update event] (http://mottie.github.io/tablesorter/docs /index.html#update) có thể được gắn cờ để sử dụng các nội dung cập nhật. – Mottie

+1

Cảm ơn bạn rất nhiều. Đây là thứ duy nhất có thể làm việc cho tôi –

0

Cách duy nhất tôi có thể làm làm việc là để tái tạo toàn bộ bảng (loại bỏ nó và sau đó tạo lại).

$(".resultTablePlaceholder").html('').html('<table id="resultTable">...</table>'); 
$("#resultTable").tablesorter(); 
0

Nguyên nhân:

của nó bởi vì khi chúng ta thêm bất kỳ dữ liệu trong bảng nó kích hoạt buildCache() phương pháp và lưu dữ liệu bảng trong biến bộ nhớ cache, nhưng khi bạn xóa dữ liệu từ bảng của nó sẽ không thực hiện bất kỳ thay đổi trong biến bộ nhớ cache.

khi bạn sắp xếp dữ liệu hơn là xóa bảng và nối dữ liệu đã lưu vào bảng để có dữ liệu bị xóa.

Giải pháp:

bạn có thể sửa đổi onselectstart function() hoặc sự kiện mousedown trong tablesorter.js

//here tb_35 = id of table 
cache = buildCache($('#tb_35')[0]); 
Các vấn đề liên quan