2009-03-08 27 views
21

tôi muốn có thể tạo bản sao của phần tử mà tôi muốn kéo. im sử dụng ui tiêu chuẩn có thể kéo và có thể phân đoạn. tôi biết về tùy chọn clone helper. nhưng điều đó không tạo ra một bản sao. mục kéo được hoàn nguyên về vị trí ban đầu.nút bản sao khi kéo

Trả lời

35

Mark,

Hãy thử ví dụ này:

 $(document).ready(function(){ 
     $(".objectDrag").draggable({helper:'clone'}); 

     $("#garbageCollector").droppable({ 
      accept: ".objectDrag", 
      drop: function(event,ui){ 
        console.log("Item was Dropped"); 
        $(this).append($(ui.draggable).clone()); 
       } 
     }); 

    }); 

Và Html trông như thế này

 <div class="objectDrag" 
     style="width:10%; color:white;border:black 1px solid; background-color:#00A">Drag me</div> 

    <div id="garbageCollector" style="width:100%; height:400px; background-color:#333; color:white;"> Drop items on me</div> 
+0

Scott, thanks a lot cho điều này . Nhưng tôi muốn phần tử nhân bản/bị bỏ rơi ở cùng một vị trí đã bị loại bỏ. bạn có biết làm thế nào tôi có thể làm điều đó? tôi đã cố gắng thêm .css (ui.position). nhưng nó không hoạt động – mark

+0

Đánh dấu, dự đoán đầu tiên của tôi là sử dụng .css (ui.position), nhưng nếu bạn đã thử ... Những gì bạn có thể thử là tạo một bản sao tạm thời của đối tượng có thể kéo dừng lại. Điều này nên chứa vị trí tương đối của đối tượng. Nối nó vào vùng chứa thay vì chính đối tượng đó. Hãy cho tôi biết – Scott

+0

Tuyệt vời! Gọn gàng và đơn giản. – NLV

2

Để lại kéo clone/copy, thiết lập các tham số withDataAndEvents-đúng:

$(this).append($(ui.draggable).clone(*true*)); 
9

Kể từ khi tôi không thể bình luận (chưa) Tôi sẽ để lại điều này như một câu trả lời riêng biệt - trong trường hợp ai đó, như tôi, sẽ tìm thấy câu hỏi này:

Đối với các câu hỏi từ bình luận

" Nhưng tôi muốn phần tử nhân bản/bị bỏ rơi ở cùng một vị trí nó bị bỏ đi. ? Bạn có biết làm thế nào tôi có thể làm điều đó"

tôi đã tìm thấy giải pháp trong khác nhau SO câu hỏi và câu trả lời là để thay đổi dòng này:

$(this).append($(ui.draggable).clone()); 

để

$(this).append($(ui.helper).clone()); 

(thay đổi ui.draggable để ui.helper)

Hy vọng nó giúp.

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