JavaScript移动拖放

JavaScript移动拖放,javascript,jquery,android,Javascript,Jquery,Android,我正在测试我使用jQuery UI Dragable、Dropable和sortable构建的界面,注意到拖放在移动浏览器中不起作用。我认为在移动浏览器中触发事件的方式有所不同 有没有支持移动浏览器拖放的JavaScript框架 如果没有,您对如何整合一些基本的拖放功能有何想法?这是一个棘手的问题……我想您已经强调了这个问题:触摸事件尚未与jQuery拖放功能集成,我不确定是否有针对移动设备范围的拖放库 我能说的是,你可以自己开始利用这些事件,但我不确定你是否愿意自己写这些。简单地说,检查移动设

我正在测试我使用jQuery UI Dragable、Dropable和sortable构建的界面,注意到拖放在移动浏览器中不起作用。我认为在移动浏览器中触发事件的方式有所不同

有没有支持移动浏览器拖放的JavaScript框架


如果没有,您对如何整合一些基本的拖放功能有何想法?

这是一个棘手的问题……我想您已经强调了这个问题:触摸事件尚未与jQuery拖放功能集成,我不确定是否有针对移动设备范围的拖放库

我能说的是,你可以自己开始利用这些事件,但我不确定你是否愿意自己写这些。简单地说,检查移动设备,然后附加事件可以通过以下方式实现:

if (navigator.userAgent.match(/iphone/i) ||
    navigator.userAgent.match(/ipad/i) ||
    navigator.userAgent.match(/ipod/i) ||
    navigator.userAgent.match(/android/i))
{
    var element = $('#your_draggable_element_id');
    element.bind('touchstart', touchStartFunctionHere);
    element.bind('touchmove', touchMoveFunctionHere);
    element.bind('touchend', touchEndFunctionHere);
}
这会让你进入事件,这会让你控制下一步做什么。很明显,你需要拖动、触摸等的位置,你可以从事件本身获得这些位置。例如,基于上述代码:

function touchMoveFunctionHere(event)
{
    event.preventDefault();
    var x = event.originalEvent.touches[0].pageX;
    var y = event.originalEvent.touches[0].pageY;

    ...

}

这不是您所寻找的完整解决方案,我希望其他人能够对移动设备的拖放框架有所了解,但这只是一个开始!希望这有帮助

您应该使用类似Modernizer的js库来测试这些事件是否可用。测试用户代理是邪恶的新根源。哈哈哈!非常正确,+1你的评论照亮了我大脑的一部分,我认为我已经失去了…;)感谢您对移动活动的概述。我可以构建一个splint并使用$.trigger()触发相应的事件,或者,我想我可以分叉jQuery UI并更新它来处理事件,然后看看他们是否希望将其应用到UI中。但是,有些事情告诉我,可能有一些事情阻止了这种情况的发生。我得去看看。谢谢你的帮助!