0
我测试了一个使用jQuery UI拖动,拖放和排序构建的界面,并注意到拖放功能在手机浏览器中不起作用。我认为在移动浏览器中触发事件的方式有所不同。JavaScript Mobile Drag and Drop
是否还有JavaScript框架,支持在移动浏览器中拖放?
如果没有,关于如何将一些基本的拖放功能放在一起的任何想法?
我测试了一个使用jQuery UI拖动,拖放和排序构建的界面,并注意到拖放功能在手机浏览器中不起作用。我认为在移动浏览器中触发事件的方式有所不同。JavaScript Mobile Drag and Drop
是否还有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;
...
}
不是完整的解决方案,你在寻找,我希望别人能摆脱对移动设备拖/放框架一些光,但它是一个开始!希望这可以帮助!
您应该使用像modernizr这样的js库来测试这些事件是否可用。测试用户代理是恶魔的根源。 – 2012-02-08 14:30:07
哈哈哈!非常正确,+1为您的评论照亮了我的大脑的一部分我以为我失去了...;) – 2012-02-08 14:34:16
不客气:p – 2012-02-08 14:42:22