0

http://liveweave.com/rh0ILM

http://jsbin.com/IZodOSU/1/edit

ドラッグ クラスを持つすべての div はドラッグ可能である必要がありますが、追加された場合はドラッグできません。誰でもこれで私を助けることができますか?

HTML

<script src="http://threedubmedia.com/inc/js/jquery-1.7.2.js"></script>
<script src="http://threedubmedia.com/inc/js/jquery.event.drag-2.2.js"></script>
<script src="http://threedubmedia.com/inc/js/jquery.event.drag.live-2.2.js"></script>

<button id="divgen">Gen Div</button>

<div class="container">
    <div class="drag" style="left:20px;"></div>
    <div class="drag" style="left:100px;"></div>
    <div class="drag" style="left:180px;"></div>
</div>

CSS

.drag {
    position: absolute;
    border: 1px solid #89B;
    background: #BCE;
    height: 58px;
    width: 58px;
    cursor: move;
    top: 120px;
}

JS/JQuery

jQuery(function($){
    $('.drag').drag(function( ev, dd ){
        $( this ).css({
            top: dd.offsetY,
            left: dd.offsetX
        });
    });

    $("#divgen").click(function() {
        $("div.container").append('<div id="whatever" class="drag">my div</div>');
    });
});
4

3 に答える 3

3

以下を試してください。DIV は動的に作成されるため、委任を使用する必要があります。

$('.container').on('drag','.drag',(function( ev, dd ){
    $( this ).css({
        top: dd.offsetY,
        left: dd.offsetX
    });
}));

ワーキングデモ

于 2013-08-31T07:17:56.907 に答える
0

この div は DOM に新しく追加されるため、 $("#divgen").click(....) でドラッグ関数を再実行する必要があります。

于 2013-08-31T07:16:24.637 に答える
0

新しい div が追加された後、もう一度ドラッグ関数を呼び出します。

jQuery(function($){
    $('.drag').drag(function( ev, dd ){
        $( this ).css({
            top: dd.offsetY,
            left: dd.offsetX
        });
    });

    $("#divgen").click(function() {
        $("div.container").append('<div id="whatever" class="drag">my div</div>');
        $('.drag').drag(); // Call drag function.
    });
});
于 2013-08-31T07:19:18.553 に答える