jQuery mobile有jqueryUi.mouse.js版本吗?

时间:2011-09-21 17:56:24

标签: jquery jquery-ui mobile jquery-mobile

我为我的网站使用了jqueryui.sortable小部件,但它在移动平台上不起作用。我查看了源代码,看起来像mouse.js将处理程序绑定到事件。

是否有适用于jQ mobile的mouse.js版本,或者有一种简单的方法可以将jq移动事件(vmousedown,vmousemove,vmouseup)转换为常用鼠标事件,以便jQuery UI小部件接收它们吗?

1 个答案:

答案 0 :(得分:1)

你可以在没有太多工作的情况下自己扩展库。

检查设备是否支持触摸很容易:

var supportTouch = ("ontouchend" in document);

然后,您可以根据是否启用触摸来使用相应的事件,jQuery mobiles库中使用以下内容:

var touchStartEvent = supportTouch ? "touchstart" : "mousedown",
    touchStopEvent = supportTouch ? "touchend" : "mouseup",
    touchMoveEvent = supportTouch ? "touchmove" : "mousemove";

然后你更改库以使用那些变量而不是当前硬编码的鼠标事件,可能看起来像这样:

$(".sortable").bind("mousedown", doSomething());

但应该是这样的:

$(".sortable").bind(touchStartEvent, doSomething());

在做太多工作之前做一些测试,我没有测试过上面的代码而没看过可排序的库。

另一个注意事项是,某些移动设备不支持拖动浏览器中的对象,我所知道的是Windows Phone 7(无论是否有Mango)。如果你想支持那些你应该构建一些“非拖放”解决方案。