a

Câu hỏi Sử dụng jQuery tableSorter trên bảng được sửa đổi động


Tôi đang sử dụng plugin jQuery tableSorter trên một trang.

Unfortunatley, bảng đang được sắp xếp được tự động sửa đổi và khi tôi sắp xếp sau khi thêm phần tử, phần tử biến mất, khôi phục bảng về trạng thái khi bảng được tạo.

Có cách nào mà tôi có thể buộc tableSorter để rescan trang để các yếu tố mới được sắp xếp đúng cách?


18
2017-10-29 15:45


gốc




Các câu trả lời:


Tôi tin rằng bạn có thể kích hoạt bản cập nhật bằng cách sử dụng một cái gì đó như:

$(table).trigger("update")

21
2017-10-29 15:47





Có vẻ như bạn là chính xác.

$ (bảng) .trigger ("cập nhật");
$ (bảng) .trigger ("appendCache");

không lừa.

Như một lưu ý, API tablesorter đã thay đổi tại một số điểm, vì vậy những thứ này đã thay đổi, cũng như sự kiện ràng buộc. Hangup lớn nhất của tôi đã cố gắng tìm ra lý do tại sao một số điều đã làm việc và những người khác thì không, và đó là do có một phiên bản sai của plugin, mặc dù không có sự khác biệt rõ ràng.


13
2017-11-12 19:27



Đây sẽ là câu trả lời được chấp nhận. Nếu không có phần "appendCache", tôi chỉ có thể sắp xếp theo một hướng (các loại nhấp chuột thứ nhất, thứ 2 không làm gì cả), như trong câu trả lời của Josh. Nhưng với nó, mọi thứ hoạt động như mong đợi. Lưu ý rằng nếu cập nhật đang xảy ra trong một khối mã khác từ nơi bạn tạo đối tượng tablesorter, bạn có thể tạo lại nó ở đó. Giả sử tab tableser của bạn có id "ts". Làm $("#ts").tablesorter().trigger("update"); và tương tự cho appendCache. Hoặc là: $table = $("#ts").tablesorter(); $table.trigger("update"); $table.trigger("appendCache"); - Buttle Butkus
Mặt khác, tôi chỉ phát hiện ra rằng câu trả lời này sẽ không hoạt động nếu bạn vừa xóa một hàng. Tôi không chắc bạn thực sự cần phải làm gì nếu bạn xóa một hàng. - Buttle Butkus


Các $(table).trigger("update"); ném lỗi

    Uncaught TypeError: Cannot read property 'rows' of undefined 

Vì vậy, có một hàm jquery .ajaxStop() Ở đâu tablesorter() được gọi là. Không gọi bảng trong .ready()

    jQuery(document).ajaxStop(function(){
      jQuery("#table_name").tablesorter();
    })

đã làm công việc


3
2018-06-15 14:07





Đối với những người mới như tôi đang phải đối mặt với vấn đề với phân loại năng động tạo ra bảng, đây là giải pháp. Câu trả lời được đưa ra trước đây là đúng, nhưng bạn đặt lệnh này ở đâu?

$('#tableId').tablesorter().trigger('update');

Bạn cần phải đặt nó ngay sau khi bạn đã nối dữ liệu vào bảng. Ví dụ trong trường hợp của tôi

var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
$('#tableId').html('tableData');
$('#tableId').tablesorter().trigger('update');

0
2018-02-18 09:40