私は、それぞれに数値 ID を持つドラッグ可能な「ノード」が多数あるページに取り組んでいます。取得したサーバー側のデータに基づいてこれらを作成します。
for(var nodeid in data) { // data fetched by AJAX request
// makeHTML generates an HTML snippet with ID #node-{nodeid}
$("body").append(makeHTML(nodeid));
// make nodes draggable, calling node action on stop
$("#node-" + nodeid).draggable({
stop: function(event, ui) {
performAction(nodeid);
}
});
}
オブジェクトはすべてページに表示され、期待どおりにラベル付け/ID が付けられますが、何かをドラッグするたびに、ドラッグされたオブジェクトに関連付けられた ID ではなく、ループ内performAction()
の最後のID で常に呼び出されます。
適切nodeid
に渡されていない理由はありますか?performAction()
ループについて別の方法で宣言する必要がありますか?