小编Tho*_*mas的帖子

结合jQuery Mobile taphold和jQuery UI draggable

我正在开发一个移动应用程序,我正在尝试将jQuery UI的可拖动功能与jQuery Mobile的taphold事件相结合.这个想法是当执行taphold时元素变得可拖动.

Draggable正在以下代码中的元素上初始化:

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

如您所见,最初禁用了可拖动功能,因为我想在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');
}); 
Run Code Online (Sandbox Code Playgroud)

这是有效的,但问题是需要'释放并再次点击'事件才能拖动元素,而不是在taphold事件之后直接拖动.这可能是某种事件干扰问题吗?我尝试了类似的东西,event.preventDefault()但我对jQuery事件的了解并不多,所以我不知道这是否应该有所不同.

关于如何解决这个问题的任何想法?

jquery-ui jquery-mobile jquery-ui-draggable long-press

6
推荐指数
1
解决办法
9031
查看次数