11

アップデート:

http://jsfiddle.net/wJUHF/7/
これは、これを読む人のための更新された機能するフィドルです。


このjfiddleを機能させようとしています。

ここに問題があります。画像をコンテナにドラッグできます。問題なくクローンを追加します。複製した画像をクリックしてコンテナにドラッグすると、最初は正しく機能します。2 回目にクリックしてドラッグすると、ドラッグされず、既に複製された画像が複製されます。理解を深めるために、jsfiddle を作成しました。見て、ここでどこが間違っているのか教えてください。

http://jsfiddle.net/wJUHF/

ありがとう

コード:

$(function(){  
    //Make every clone image unique.  
    var counts = [0];  
    $(".dragImg").draggable({
        helper: "clone",
        //Create counter
        start: function() { counts[0]++; }
    });

    $("#dropHere").droppable({
        drop: function(e, ui){
            $(this).append($(ui.helper).clone());
            //Pointing to the dragImg class in dropHere and add new class.
            $("#dropHere .dragImg").addClass("item-"+counts[0]);
            //Remove the current class (ui-draggable and dragImg)
            $("#dropHere .item-"+counts[0]).removeClass("dragImg ui-draggable ui-draggable-dragging");
            //not working 100%           
            $(".item-"+counts[0]).dblclick(function(){
                $(this).remove();
            });     

            //make the div draggable --- Not working???    
            make_draggable($(".item-1"));              
        }
    });

    var zIndex = 0;
    function make_draggable(elements)
    {   
        elements.draggable({
            containment:'parent',
            start:function(e,ui){ ui.helper.css('z-index',++zIndex); },
            stop:function(e,ui){}
        });
    }
});

HTML:

<body>
    <div class="dragImg"><img src="http://placehold.it/80x80">
     </div>
    <div id="dropHere"></div>
</body>

CSS:

#dropHere {
    width:400px;
    height: 400px;
    border: dotted 1px black;
}
4

2 に答える 2

4

ドロップ ハンドラで区別するための条件が必要なだけです。

if(ui.draggable.hasClass("dragImg"))
     $(this).append($(ui.helper).clone());
于 2013-08-28T20:15:03.983 に答える