jQuery: Как я моделирую Перетаскивание в Коде?

Править: Вот ссылка, чтобы показать Вам мой пример кода: http://www.singingeels.com/jqtest/

У меня есть очень простая страница что ссылочный jquery-1.3.2.js, ui.core.js (последняя версия) и ui.draggable.js (также последняя версия).

У меня есть отделение, которое я могу перетащить вокруг очень легко (использующий мышь, конечно):

hello

и затем в 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

Править: Вот ссылка, чтобы показать Вам мой пример кода: 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() { }
    });
});

21
задан SolutionYogi 22 July 2009 в 16:24
поделиться