jQuery 1.2.x と jQuery UI 1.5.x を使用すると、次のように手動でドラッグをトリガーできました。
jQuery("#myDiv").mousedown(function(ev) {
target = jQuery(ev.target);
if (target.hasClass("drag-me")) {
target.draggable({
helper: "clone",
start: function()
{
console.log("drag start");
},
stop: function()
{
jQuery(this).draggable("destroy");
}
}).trigger("mousedown.draggable", [ev]);
} });
次の HTML に適用されます。
<div id="myDiv">
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
</div>
子が動的に変更されるコンテナー内の要素にドラッグを適用する便利な方法でした。私はそれを「ドラッグ委任」と呼んでいます。
ただし、jQuery 1.3.x および jQuery 1.6+ のリリースにより、上記のスクリプトは機能しなくなりました。jQuery 1.3.2 と jQuery UI 1.7.1 を使用すると、「再帰が多すぎます」というエラーが返されます。
ドラッグを手動でトリガーするにはどうすればよいですか? 助言がありますか?