EDIT: Здесь ссылка, чтобы показать вам мой пример кода: http://www.singingeels.com/jqtest/
У меня очень простая страница, которая ссылается на jquery-1.3.2.js, ui.core.js(последняя версия) и ui.draggable.js(также последняя версия).
У меня есть div, который я могу легко перемещать (используя мышь, конечно):
<div id="myDiv">hello</div>
а затем в JavaScript:
$("#myDiv").draggable();
Это прекрасно работает. Но мне нужно смоделировать "перетаскивание", используя только код. У меня это в основном работает, но проблема в том, что события, которые срабатывают, являются событиями-заполнителями.
Если вы откроете "ui.core.js" и прокрутите до конца... вы увидите следующее:
// These are placeholder methods, to be overriden by extending plugin
_mouseStart: function(event) { },
_mouseDrag: function(event) { },
_mouseStop: function(event) { },
_mouseCapture: function(event) { return true; }
Почему в моей симуляции не расширяются события, но когда вы нажимаете мышкой, они есть? - Любые идеи о том, как заставить свойство _mouseDrag: подчиняться надстрочному расширению в "ui.draggable.js"?
Решение этого было бы огромным - и я планирую показать основные преимущества позже.
Спасибо, -Timothy
EDIT: Здесь ссылка, чтобы показать вам мой пример кода: http://www.singingeels.com/jqtest/
РЕДАКТИРОВАТЬ 2: Нажмите эту ссылку выше и просмотреть источник... вы увидите, что я пытаюсь сделать. Вот фрагмент:
$(document).ready(function() {
var myDiv = $("#myDiv");
myDiv.draggable();
// This will set enough properties to simulate valid mouse options.
$.ui.mouse.options = $.ui.mouse.defaults;
var divOffset = myDiv.offset();
// This will simulate clicking down on the div - works mostly.
$.ui.mouse._mouseDown({
target: myDiv,
pageX: divOffset.left,
pageY: divOffset.top,
which: 1,
preventDefault: function() { }
});
});