0

ボタンを特定の div 要素にドラッグできる jQuery を使用したソリューションを実装したいと考えています。その div にドロップされると、html がカスタマイズされているはずです。

jsfiddleにある例を1つ見つけましたが、残念ながらSOはjsfiddleへのリンクを提供していません。ここにすべてのコードを貼り付けます:

HTML

<ul id="left-pane">
   <li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
   <li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
   <li><img src="https://www.google.com/images/srpr/logo3w.png" /></li>
</ul>

<ul id="right-pane">
</ul>

CSS

#left-pane
{
    border: 1px solid black;
    min-width: 100px;
    min-height: 100px;
}

#right-pane
{
    border: 1px solid black;
    min-width: 100px;
    min-height: 100px;
}

JavaScript / jQuery

$("#left-pane li").draggable({
    containment: '#gbox',
    cursor: 'move',
    helper: 'clone',
    scroll: false,
    connectToSortable: '#right-pane',
    appendTo: '#right-pane',
    start: function () {},
    stop: function (event, ui) {}
}).mousedown(function () {});

$("#right-pane").sortable({
    sort: function () {},
    placeholder: 'ui-state-highlight',
    receive: function () {},
    update: function (event, ui) {}
});

$("#right-pane li").live('dblclick', function () {
    $(this).remove();
})

$("#right-pane").droppable({
    accept: "#left-pane li",
    accept: ":not(.ui-sortable-helper)",
    drop: function (event, ui) {
        if ($(ui.draggable).find('.single-item').length == 0)
        {
            $(ui.draggable).append("<div class='single-item'><input type='text' class='item-title' /><br /><textarea class='item-text'></textarea></div>");
        }
    }
});

$("#left-pane").droppable({
    accept: "#right-pane li",
    drop: function (event, ui) {}
});

$("ul, li").disableSelection();

上記のようなものが欲しいのですが、画像を特定のボタンというよりUI要素に変更したいのですが、通常のdivに変更できますか?

誰かがこのフィドルで遊んで、簡単なドラッグ アンド ドロップ ソリューションを提供してくれませんか?

前もって感謝します。

4

1 に答える 1

0

上記のコードをいじって、自分で解決策を見つけたと思います。ボタンはすでにクリックイベントがマップされているため、ボタンをドラッグしようとしたときにドラッグイベントで機能しなかったため、ボタンに問題がありました。ボタンのように表示される(cssでスタイル設定された)div要素を追加しようとしたところ、希望どおりに機能しました。

変更する必要があるのは、html コードだけです。

<ul id="left-pane">
   <li><div align="center" style="width:100px;border:3px solid #ddd; padding:5px;cursor:move;background:#eee;">Drag Me</div>
</ul>

<ul id="right-pane">
</ul>

これが私が探していた最終的な解決策です: http://jsfiddle.net/Y7RmR/77/

于 2013-06-20T16:25:12.983 に答える