jqueryのdraggableをcloneして任意のIDをふる
テーマ : ITの事
プログラムな事で、ちょっと専門的な話になりますが、
jqueryでdraggableとsortableを組み合わせて使ってみました。
helperをcloneとした場合、DBに保存する際にオブジェクト一つ一つに個々のIDが欲しいのですが、
どうすればよいか結構なやんだので、ここにメモっておきます。
あまりスマートな書き方ではないですが、、。。
悩んだのが、ドラッグする前にオブジェクトをコピーして、それにIDをふってしまおうと考えたのですが
startする際に、IDを変更すると、どうしても元のオブジェクトも一緒に変更されてしまい、IDが重複してしまいます。
なので、ドラッグをスタートする際に、IDを一旦変えて
$("#dragtable").draggable({
connectToSortable: '#droptable,
helper:'clone',
start:function(ev, ui) {
$(this).attr('id','id_'+(idNum+1));
}
});
sorttable側で、コピー元のdragtableのIDを消す
$("#droptable").sortable({
stop:function(ev, ui) {
$('#dragtable li').attr('id','');
}
});
という2回の手順を踏んでなんとか動かしました。
どなたか、もっとスマートな方法しりませんでしょうか?