我正在开发一个移动应用程序,我试图将 jQuery UI 的可拖动功能与 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');
});
这可行,但问题是需要一个“释放并再次点击”事件才能拖动元素,而不是在点击事件之后直接拖动。这可能是某种事件干扰问题吗?我尝试过类似的事情,event.preventDefault()
但我对 jQuery 事件的了解并不多,所以我不知道这是否应该有所作为。
关于如何解决这个问题的任何想法?