Сочетание jQuery Mobile taphold и jQuery UI с возможностью перетаскивания

Я работаю над мобильным приложением, в котором пытаюсь объединить функцию перетаскивания пользовательского интерфейса jQuery с событием касания jQuery Mobile. Идея состоит в том, что элемент становится перетаскиваемым при выполнении нажатия.

Draggable инициализируется для элементов в следующем коде:

$('div.rect', '#outerBox').draggable({
    containment: "parent", 
    grid: [50, 50],
    disabled: true,
    stop: function(event, ui) {
        $(this).draggable('disable');
        $(this).removeClass('highlighted');
    }
}); 

Как вы можете видеть, функциональность draggable изначально отключена, потому что я хочу включить ее после события taphold. Для этого я сейчас использую следующий код:

// Bind long press event to rectangle elements
$('div.rect', '#outerBox').bind('taphold', function(event, ui) {
    // Enable dragging on long press
    $(this).addClass('highlighted');
    $(this).draggable('enable');
}); 

Это работает, но проблема в том, что для перетаскивания элемента требуется событие 'отпустить-и-нажать-снова', а не перетаскивать сразу после событие касания. Может ли это быть какой-то проблемой интерференции событий? Я пробовал такие вещи, как event.preventDefault(), но мои знания о событиях jQuery невелики, поэтому я понятия не имею, должно ли это иметь какое-то значение.

Есть идеи, как решить эту проблему?

6
задан Thomas 6 March 2012 в 09:00
поделиться