2016-08-01 11 views
0

だから私は最初に作業を開始する方法を知らなかったので、ここで最初に質問するつもりでした。 私はあなたが物事のリストを持っていて、あなたはそれを1つのコンテナdivにドロップすることができるものを作りたいと思っています。そこにドロップした後、例えば、アイテムのIDの名前をURLに追加すると、ユーザーはリンクを共有することで自分のものを他のものと共有することができます。 jqueryを使用することは可能ですか?divにドラッグアンドドロップする要素で、URLにID名を追加します

はいの場合はどうですか? :C

@edit これは私がこれまで持っていたものです。 ドラッグして1つの部門から別の部門にドロップする

$(document).ready(function() { 
$(".merchandiser_image").draggable({ cursor: "crosshair", revert: "invalid" }); 
$(".selected_item").droppable({ 
    accept: ".merchandiser_image", 
    drop: function (event, ui) { 
     console.log("drop"); 

     var dropped = ui.draggable; 
     var droppedOn = $(this); 
     $(dropped).detach().css({ top: 0, left: 0 }).appendTo(droppedOn); 


    }, 
    over: function (event, elem) { 

     console.log("over"); 
    } 
       , 
    out: function (event, elem) { 

    } 
}); 
$(".selected_item").sortable(); 

$(".klatka").droppable({ 
    accept: ".merchandiser_image", drop: function (event, ui) { 
     console.log("drop"); 

     var dropped = ui.draggable; 
     var droppedOn = $(this); 
     $(dropped).detach().css({ top: 0, left: 0 }).appendTo(droppedOn); 


    } 
}); 

});

+0

こんにちは。あなたの質問には、アイテムをドラッグアンドドロップしたり、URLを変更したり、URLを共有したときにアイテムをコンテナに追加するためにURLからIDを抽出したりできるという複数の質問が含まれています。小さな問題に踏み込んで解決してください。もしあなたが立ち往生してしまったら、ここでいくつかのコードを書いて助けてください。 (BTW、はい、JSで完全に達成できます.jQueryはドラッグ・アンド・ドロップの部分を扱いやすくします) – blex

+1

@blexは私のポストを編集しました。何か助けがあるかどうかはわかりません – Harugawa

答えて

1

ドラッグアンドドロップの設定はすべて完了しているようです。私はそれを試していませんが、これを試してみてください:

パート1 - アイテムを移動するときにURLのIDリストを更新します。あなたのdrop機能の両方で

、あなたはURLを更新するための関数を呼び出すことができます。

drop: function (event, ui) { 
    // ... 
    updateURL(); 
}, 

次に、この関数を書く:

function updateURL(){ 
    // Get all selected items 
    var items = $('.selected_item .merchandiser_image'), 
     id_list = []; 
    // Gather their IDs into an Array 
    for(var i=0; i<items.length; i++){ id_list.push(items[i].id); } 
    // Insert a hash in the URL, with the IDs, comma separated 
    window.location.hash = id_list.join(','); 
} 

パート2 - でリストを読みますページのURLを読み込み、アイテムを正しい場所に配置します。

どこでもあなたの$(document).ready()内部に、この関数を呼び出す:

updateListFromURL(); 

そして、それを宣言します。

function updateListFromURL(){ 
    var hash = window.location.hash; 
    if(hash){ 
     // replace `,` with `,#` to get a list of ID CSS selectors 
     var list_of_ids = hash.split(',').join(',#'); 
     // Append them to your list of selected items 
     $(list_of_ids).appendTo(".selected_item"); 
    } 
} 
+0

ありがとう、本当にそれについての記事は見つかりません。それは今私にそれをする方法を与えました:3 – Harugawa

関連する問題