Я работаю над мобильным приложением, в котором я пытаюсь объединить перетаскиваемую функциональность пользовательского интерфейса 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 невелики, поэтому я понятия не имею, должно ли это иметь какое-то значение.
Есть идеи, как решить эту проблему?