Cảm ơn, tôi đã mất trí vì điều đó. Không có ví dụ nào trong số các ví dụ cũ hoạt động! Vì vậy, cuối cùng tôi có thể truy cập siêu dữ liệu, vấn đề là tôi không biết cách lặp qua số lượng trường siêu dữ liệu không xác định?
ok, bây giờ tôi đã kiểm tra nó và nó có thể để lặp qua đối tượng được trả về bởi dữ liệu() không có tham số tên
.bind("select_node.jstree", function (e, data) {
var propsObj = $(data.rslt.obj).data();
for (var prop in propsObj) {
alert(prop + " = " + propsObj[prop] + "\n");
}
});
Nếu bạn cần phải tránh jstree_children Mảng nhận theo cách của bạn, cách tốt nhất trong Theo tôi là để đóng gói siêu dữ liệu vào đối tượng khác như vậy:
"metadata" : {"properties" : {"prop1" : "aa1a", "prop2" : "123"}}
sau đó bạn có thể lặp lại sử dụng:
var metadata = $(data.rslt.obj).data();
for (var prop in metadata.properties) {...}
Nguồn
2011-08-25 14:33:43
Tôi tiếp tục nhận 'data.rslt' như undefined – mmcrae
Tôi không thể làm việc này. Tôi đang gửi dữ liệu đến các nút của mình thông qua cuộc gọi AJAX - tôi có cần nút 'data' khác và nút' metadata' trong JSON không? Tôi đã có thể tạo cấu trúc cây với id và trẻ em mà không có đối tượng gốc 'dữ liệu' trong JSON tức là chỉ' {"id": "3", "children": [...]} ' – mmcrae