2012-12-06 23 views
6

Vì vậy, những gì tôi đang tìm là một cách để tôi sử dụng cả hai loại có thể phân loại và có thể phân chia trên cùng một phần tử. Cho phép nói rằng tôi có một danh sách gồm 5 phần tử, tất cả đều có thể sắp xếp được. Những gì tôi đang cố gắng để làm là khi một phần tử được giảm ontop của nhau, nó sẽ gắn liền với các yếu tố đó và đi ra khỏi danh sách, ví dụ:Danh sách có thể sắp xếp và phân tách của jQuery

<ul> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li>List Item</li> 
</ul> 

phần tử đã được giảm

<ul> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li>List Item</li> 
    <li>List Item 
     <ul> 
       <li>List Item Dropped</li> 
     </ul> 
    </li> 

</ul> 

Nếu bạn có một đầu mối một câu trả lời hoặc một hướng dẫn về cách làm điều này sẽ rất đánh giá cao!

+0

Hãy xem liên kết này [JQFAQ.com] (http://jqfaq.com/how-to-use-jquery-sortable-and-droppable-in-same-list/). Điều này sẽ cung cấp một câu trả lời tốt cho câu hỏi của bạn, và có nhiều câu hỏi thường gặp hơn cũng có sẵn. – karthik

+0

@squirreldev: Tôi đã thử các câu trả lời được đề xuất và đề xuất từ ​​nhận xét nhưng dường như không hoạt động hoàn toàn (cả sắp xếp và thả bên trong). Bạn đã tìm thấy giải pháp chưa? – Giorgio

Trả lời

0

HTML:

<ul id="theUL"> 
    <li class="item">List Item</li> 
    <li class="item">List Item</li> 
    <li class="item">List Item</li> 
    <li class="item">List Item</li> 
    <li class="item">List Item</li> 
</ul> 

Đây là mã sắp xếp được cho UL của bạn. Bạn cần cấu hình sự kiện thay đổi. Sự kiện thay đổi xảy ra khi sự kiện sắp xếp xảy ra, khác, điều đó có nghĩa là sự kiện thả xảy ra.

$("#theUL").sortable({ 
    revert: true, 
    items: "li", 
    change: function(event, ui) {ui.helper.addClass("change");}, 
    beforeStop: function(event, ui) {ui.helper.removeClass("change");} 
}); 

Trong mã có thể phân hủy, hãy kiểm tra xem có thay đổi không, nếu không, thì điều đó có nghĩa là bị loại bỏ.

$(".item").droppable({ 
    accept: function(el) { 
     return el.hasClass('item'); 
    }, 
    drop: function (event, ui) { 
     item=ui.draggable; 
     if(!item.hasClass('change')){ 
      //dropped! 
     } 
    } 

});

Các vấn đề liên quan