Tôi đang cố chuyển đổi một bảng html cũ thành jqGrid. Bảng cũ có một cột chứa các thẻ được xây dựng bằng cách sử dụng một danh sách không có thứ tự và các mục danh sách.jqGrid - Chèn HTML tùy chỉnh vào ô
Here is an example (jsfiddle) của bảng trước và sau đó là jqGrid.
Trong ví dụ này, tôi đang sử dụng custom formatter sử dụng jQuery Templates để tạo thành phần DOM và sau đó trình định dạng trả về $ .html() từ các phần tử DOM kết quả.
function getTagCellContents(cellvalue) {
var domitems=$("#jqgrid-tag-list-item").tmpl({tags: callvalue});
return domitems.html();
}
Vấn đề tôi có với đây là khoảng trắng được bao gồm trong html kết quả làm cho các hàng quá cao. Điều này cũng dẫn đến các thuộc tính "Tiêu đề" khó xử trên các ô.
Liệu jqGrid có cung cấp API để chèn các đối tượng DOM trực tiếp vào ô thay vì trả về văn bản từ trình định dạng tùy chỉnh không? Thực hành tốt nhất để đặt html tùy chỉnh vào ô jqGrid là gì?
Oleg, có thể thêm phương thức mới vào API jqGrid thực sự gắn thêm đối tượng DOM hoặc jQuery vào ô không? Tôi hiểu rằng việc sử dụng HTML nhanh hơn nhưng đôi khi không có HTML tương đương cho DOM. Ví dụ, tôi muốn chèn một nút với một eventListener tùy chỉnh. Tôi không thể làm '' vì 'doSomething()' của tôi là một hàm riêng và không thể truy cập được bằng HTML. Cảm ơn! –
@LeiZhao: Bộ nhớ được sử dụng bởi trình duyệt web sẽ được tăng lên khi cài đặt mọi thao tác xử lý sự kiện * riêng biệt * onclick'. 'click' hỗ trợ sự kiện bubbling: nếu không có xử lý sự kiện nào tồn tại trên'
Oleg, cảm ơn đề xuất của bạn. Tuy nhiên, trong nhiều trường hợp, tôi vẫn cần phải thực sự chèn/truy cập/thao tác DOM. Sự kiện nhấp chuột chỉ là một ví dụ. Đôi khi nó còn hơn thế nữa. Ví dụ: tôi cần chèn một thẻ '