2012-12-14 32 views
26

Làm cách nào để loại trừ yếu tố khỏi danh sách có thể sắp xếp? Ví dụ: có một phần tử có tên lớp 'ghi chú' rằng tôi không muốn là có thể kéo được?Làm cách nào để loại trừ một phần tử khỏi bị kéo trong danh sách có thể sắp xếp?

<ul class="sortable"> 

      <li id="item_3">Item 3</li> 
      <li id="item_4">Item 4</li> 
      <li id="item_5">Item 5</li> 

      <p class="note">This is a note only</p> 
    </ul> 

jquery ui sắp xếp được, jquery not rõ ràng không hoạt động ...

$(function() { 
    $(".sortable:not(.note)").sortable(
    }).disableSelection(); 
}); 

Trả lời

35

Bạn cần phải sử dụng hủy.

Xem ví dụ làm việc here.

Js:

$(function() { 
    $('.sortable').sortable(); 
    $('.sortable').disableSelection(); 
    $('.sortable').sortable({ cancel: '.note' }); 
});​ 

Như @Zephyr chỉ ra, chúng ta hãy này bạn sắp xếp lại vị trí bằng cách kéo các anh chị em, nếu bạn muốn tránh điều đó, sử dụng owise1 approach:

$('.sortable').sortable({ 
    items : ':not(.note)' 
}); 
+0

cảm ơn bạn đã giúp đỡ! – laukok

+0

@lauthiamkok không thành vấn đề, tôi vừa điều chỉnh câu trả lời cho câu hỏi cụ thể của bạn để kiểm tra. :) – Trufa

+0

vâng tôi nhận thấy bạn đã chỉnh sửa câu trả lời. cảm ơn vì đã chỉnh sửa! :-D – laukok

20

Bạn có thể sử dụng tùy chọn "items" có thể sắp xếp của chúng tôi:

$(".sortable").sortable({ 
    items : 'li' 
}); 

example

hoặc ...

$(".sortable").sortable({ 
    items : ':not(.note)' 
}); 

example

+0

Điều này cũng hoạt động với các thẻ '' chứa tập dữ liệu: '$ (" # table "). Sortable ({items:" [data-real-line] "});'. –

3

Bạn có thể loại trừ một cách rõ ràng mục có:

$(".sortable").sortable({ 
    cancel: ".disable-sorting" 
}); 
Các vấn đề liên quan