2012-07-16 146 views
1

當我拖動我建議的項目時,將拖動克隆助手並將原始對象留在原位,但不能再次拖動。我需要能夠拖動同一個對象兩次。我該怎麼做?JQuery - 複製拖放對象

$('.drag').draggable({ 
helper: 'clone', 
snap: '.drop', 
grid: [60, 60], 
revert: function(droppable) { 
    if (droppable === false) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 
}); 

$('.drop').droppable({ 
    drop: function(event, ui) { 
     ui.draggable.fadeOut(1000); 
    } 
}); 

$('.drag').hover(
    function() { 
    $(this).stop().animate({ 
    opacity: "0.8" 
    }); 
}, function() { 
    $(this).stop().animate({ 
     opacity: "1" 
    }); 
}); 

$('.drop').droppable({ 
    drop: function(event, ui) { 
     if (ui.draggable[10, 10].id) { 
      $(this).append($(ui.helper).clone().draggable()); 
     } 
    } 
}); 
+0

@Elen有什麼想法? – m0onio 2012-07-16 14:03:04

回答

3

這裏的工作代碼的jsfiddle:

http://jsfiddle.net/qfywP/2/

問題是這一行:

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

你應該首先克隆的幫手,它追到DOM,然後使其可拖動:

ui.helper.clone().appendTo($(this)).draggable()

您還應該知道,您的代碼被封裝在if語句if (ui.draggable[10, 10].id) {}中。這不是真的,所以你的代碼永遠不會被執行。

我也做了一些春季大掃除你的代碼,因爲你有一些冗餘。 $('.drop').droppable()正在被宣佈兩次,當你只需要它一次。