【发布时间】:2012-03-23 17:55:35
【问题描述】:
我正在开发一个移动应用程序,我正在尝试将 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 事件的了解并不多,所以我不知道这是否应该有所作为。
知道如何解决这个问题吗?
【问题讨论】:
-
您的代码在 jQuery Mobile 1.4.4+ 上运行良好,不需要下面建议的解决方法。
标签: jquery-ui jquery-mobile jquery-ui-draggable long-press