Сочетание 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');
}
});
Как видите, функция перетаскивания изначально отключена, потому что я хочу включить ее после события касания. Для достижения этого я в настоящее время использую следующий код:
// 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');
});
Это работает, но проблема в том, что событие «release-and-tap-again» необходимо для перетаскивания элемента, а не перетаскивания непосредственно после события taphold. Может ли это быть какой-то проблемой вмешательства события? Я пробовал такие вещи, какevent.preventDefault()
но мои знания о событиях jQuery невелики, поэтому я понятия не имею, должно ли это иметь какое-то значение.
Есть идеи, как решить эту проблему?