Tôi có hai danh sách có thứ tự bên cạnh nhau.Sử dụng jQuery để chèn động vào danh sách theo thứ tự abc
Khi tôi lấy một nút ra khỏi một danh sách, tôi muốn chèn nó vào bảng chữ cái trong danh sách khác. Việc nắm bắt là tôi muốn chỉ lấy một phần tử ra và đặt nó trở lại trong danh sách khác mà không làm mới toàn bộ danh sách.
Điều kỳ lạ là khi tôi chèn vào danh sách bên phải, nó hoạt động tốt, nhưng khi tôi chèn lại vào danh sách bên trái, thứ tự không bao giờ xuất hiện đúng.
Tôi cũng đã thử đọc mọi thứ vào một mảng và sắp xếp nó ở đó trong trường hợp phương thức children() không trả về thứ tự chúng được hiển thị, nhưng tôi vẫn nhận được kết quả tương tự.
Đây là jQuery tôi:
function moveNode(node, to_list, order_by){
rightful_index = 1;
$(to_list)
.children()
.each(function(){
var ordering_field = (order_by == "A") ? "ingredient_display" : "local_counter";
var compA = $(node).attr(ordering_field).toUpperCase();
var compB = $(this).attr(ordering_field).toUpperCase();
var C = ((compA > compB) ? 1 : 0);
if(C == 1){
rightful_index++;
}
});
if(rightful_index > $(to_list).children().length){
$(node).fadeOut("fast", function(){
$(to_list).append($(node));
$(node).fadeIn("fast");
});
}else{
$(node).fadeOut("fast", function(){
$(to_list + " li:nth-child(" + rightful_index + ")").before($(node));
$(node).fadeIn("fast");
});
}
}
Đây là những gì html của tôi trông giống như:
<ol>
<li ingredient_display="Enriched Pasta" ingredient_id="101635" local_counter="1">
<span class="rank">1</span>
<span class="rounded-corners">
<span class="plus_sign"> + </span>
<div class="ingredient">Enriched Pasta</div>
<span class="minus_sign"> - </span>
</span>
</li>
</ol>
Bạn đã thử sử dụng trình gỡ rối để duyệt qua mã của bạn và đảm bảo rằng hàm gọi lại (...) của bạn hoạt động chính xác? Các công cụ phát triển Firebug hoặc IE8 hoạt động tốt cho việc này. Bạn có thể đặt điểm ngắt trong phần gọi lại của bạn. – RMorrisey
tôi đã kiểm tra w3c. tôi không thể tìm thấy bất kỳ đề cập đến các thuộc tính 'component_display',' ingredient_id' hoặc 'local_counter'. sang một bên, đây là một số html khủng khiếp. tôi hy vọng điều này sẽ không được đưa vào sản xuất ở đâu đó: \ – Jason
Tôi đã từng bước sử dụng firebug và vì lý do nào đó họ không quay lại đúng thứ tự cho một trong các danh sách có thứ tự.Có lẽ tôi nên đi bằng getElementById. @ jason, đây không phải dành cho sản xuất. Đó là những thuộc tính do người dùng định nghĩa. Bạn đề nghị sửa lỗi này như thế nào? – Dex