Использование JQuery 1.2.x и JQuery UI 1.5.x, один был в состоянии вызвать перетаскивая вручную следующим образом:Trigger мыши Перетаскивание в JQuery UI
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 возвращает ошибку «слишком много рекурсии».
Как я могу вызвать перетаскивание вручную? Какие-либо предложения?
Я добавил HTML. Как я уже упоминал в вопросе, он работал в более ранних версиях jQuery & jQuery UI (1.2.6 и 1.5.2 соответственно). Я написал статью в блоге по этой теме (http://neilcraig.blogspot.com/2008/12/how-to-trigger-jquery-ui-dragging.html). Это потребовало небольшого исправления для источника пользовательского интерфейса jQuery, но это действительно сработало. Я попытался потрогать событие mousedown с помощью .trigger (ev), .trigger («mousedown»), а также. Trigger («mousedown.draggable»), но, увы. Спасибо за вашу помощь. – Raybiez