2012-06-15 24 views
5

Tôi có hai div và tôi đang sử dụng thư viện JQueryUI để thả một div vào một phần tử khác.Giao diện người dùng JQuery chụp vào lưới trong phần tử

Tôi muốn chụp div có thể kéo vào lưới trong div thả thay vì lưới trên toàn bộ trang. Tôi đã tìm thấy thuộc tính snap để snap vào phần tử drop, tôi cũng tìm thấy thuộc tính grid để snap nó vào một lưới nhưng có cách nào để kết hợp cả hai?

$("#draggable").draggable({ grid: [ 50, 50 ] }); 

Cách duy nhất khác mà tôi có thể nghĩ đến là điền div thả với nhiều div chụp nhỏ hơn là cách tiếp cận tôi không thích!

Trả lời

8

Bạn có thể sử dụng các phương thức vượt qua và có thể phân tách để phát hiện khi nào khả năng kéo qua, và sau đó chỉ thực hiện tham số lưới tại điểm đó.

$("#draggable").draggable(); 
$("#snaptarget").droppable({ 
    over: function(event, ui) { 
     $("#draggable").draggable({ 
      grid: [50, 50] 
     }); 
    }, 
    out: function(event, ui) { 
     $("#draggable").draggable("option", "grid", false); 
    } 
});​ 

jsFiddle example.

+0

Xin cảm ơn! Tôi cho rằng giả vô hiệu hóa thuộc tính đó? – Liath

+1

Đúng vậy. Sai là giá trị mặc định cho lưới, do đó, bằng cách thiết lập để trở về sai sau 50,50, bạn về cơ bản đặt lại tùy chọn đó. – j08691

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