私は一種の Web ベースのマップ エディターを開発しており、JQuery と JQuery-ui を使用しています。私は主に後者を使用して、オブジェクトをドラッグ可能にします。ユーザーがボタンをクリックすると、オブジェクトが作成され、ページのデフォルトの位置に挿入されます。オブジェクトが作成されたら、ドラッグ可能にします。
オーバーラップする 2 つ以上のオブジェクトを作成すると、一番上にあるオブジェクトのみをドラッグでき、他のオブジェクトはドラッグできなくなります。これらのオブジェクトを追加してどこかに移動し、オーバーラップさせた後でも問題はありませんが、必要な場所にドラッグできます。この問題は、オブジェクトが作成されたときにオブジェクトが重なっている場合にのみ発生します。
これが私が書いたコードです。
<html>
<head>
<script type="text/javascript" src="wz_jsgraphics.js"></script>
<script type="text/javascript" src="jquery-1.8.2.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.24.custom.min.js"></script>
<script type="text/javascript">
var lastNodeId;
$(function() {
lastNodeId = 0;
$("#nodeButton").click( addNode );
});
function addNode() {
var id = "node" + lastNodeId;
$("#drawArea").append("<div id=\"" + id + "\" class='node'></div>");
var jg = new jsGraphics(id);
jg.setColor("#000000");
jg.drawImage("pc_icon.png", 50, 50, 50, 50);
jg.paint();
var idImg = "img" + lastNodeId;
$("#" + id + " img").attr("id", idImg);
lastNodeId++;
$("#" + idImg).draggable();
}
</script>
</head>
<body>
<button type="button" id="nodeButton">Aggiungi Nodo</button>
<div id="drawArea"> </div>
</body>
</html>
ページにアイコンを描画するためだけに JSGraphics を使用します。これはhttp://www.walterzorn.de/en/jsgraphics/jsgraphics_e.htmにあります。何が起こっているのか、何が間違っているのかを誰かが理解してくれることを本当に願っています! :)
アップデート
次のオブジェクトを別の場所に追加しようとしました。前に追加したオブジェクトまでの距離が 17px 以上あれば、一番下のオブジェクトはドラッグ可能性を失わないことがわかりました。x パラメーターまたは y パラメーターを変更しても、少なくとも 17 ピクセル離れている必要があります。