2013-03-22 6 views
5

Tôi đang sử dụng jQueryUI sắp xếp được, tôi có hai danh sách:jQueryUI thay đổi màu nền khi kéo từ một danh sách khác

  • dvd thêm
  • dvd loại bỏ

Khi kéo từ thêm vào loại bỏ Tôi muốn màu nền div .container thay đổi thành màu đỏ.

Sau đó, khi kéo từ bị xóa để thêm, tôi muốn div .containerThay đổi màu nền để đổi sang màu đỏ.

http://jsfiddle.net/w3vvL/

$("#gallery").sortable({ 
    connectWith: "#trash" 
}); 
$("#trash").sortable({ 
    connectWith: "#gallery" 
}); 

Bất kỳ ý tưởng? Cảm ơn

+0

Hãy xem xét bắt đầu, dừng, xóa và nhận các phương thức trong tài liệu API có thể sắp xếp. http://api.jqueryui.com/sortable/ – slamborne

Trả lời

5

Bạn có thể sử dụng các sự kiện receive để đáp ứng khi danh sách nhận được item:

Xem fiddle Cập nhật: http://jsfiddle.net/w3vvL/39/

$("#gallery").sortable({ 
    connectWith: "#trash", 
    receive: function(event, ui) { 
        $(".container").css("background-color", "red"); 
      } 
}); 

Và với hoạt ảnh:

$("#gallery").sortable({ 
    connectWith: "#trash", 
    receive: function(event, ui) { 
        $(".container").css("background-color", "green"); 
        $(".container").stop().animate({ backgroundColor: "white" }, "slow"); 
      } 
}); 

Xem cập nhật fiddle: http://jsfiddle.net/w3vvL/43/

+0

Gần như có giao phối, tuy nhiên tôi cần nó vì vậy khi bạn kéo div đi màu xanh lá cây hoặc màu đỏ (tùy thuộc vào nơi bạn rơi), sau đó một khi bạn thả mục trong một div cụ thể div trở về màu trắng. – John

+0

Chỉ cần thêm hoạt ảnh! – Arcturus

+0

làm thế nào bạn sẽ có được nền để thay đổi khi bạn kéo li xung quanh thay vì xuất hiện khi mục được 'bỏ' vào div đối diện? Có hoạt ảnh hoạt động, chúc mừng – John

0

thử thuộc tính "giữ chỗ"

$("#gallery").sortable({ 
    connectWith: "#trash", 
    placeholder: "ui-state-highlight" 
}); 
0

Nếu bạn muốn làm nhiều hơn như một di chuột, bạn có thể sử dụng overout sự kiện.

Xem fiddle Cập nhật: http://jsfiddle.net/w3vvL/61/

$("#gallery").sortable({ 
    connectWith: "#trash", 
    over: function(event, ui) { 
     if(ui.sender.context.id != "gallery") 
      $(".container").css("background-color", "green"); 
    }, 
    out: function(event, ui) { 
     $(".container").css("background-color", "white"); 
    } 
}); 

Bạn có thể nhận thấy rằng tôi sử dụng thuộc tính ui.sender đó là sắp xếp được rằng mục đến từ nếu di chuyển từ một sắp xếp được sang người khác. Nó cho phép tôi phát hiện xem chúng ta có thể sắp xếp khác nhau hay không để không thay đổi màu nền nếu chúng ta vẫn trong cùng một loại có thể sắp xếp.