【问题标题】:Is there a jqueryUi.mouse.js version for jQuery mobile?jQuery 移动版是否有 jqueryUi.mouse.js 版本?
【发布时间】:2011-09-21 17:56:24
【问题描述】:

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

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

【问题讨论】:

    标签: jquery jquery-ui mobile jquery-mobile


    【解决方案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)。如果您想支持这些,您应该构建一些“非拖放”解决方案。

    【讨论】:

    • 我刚刚将事件名称更改为“v*”,但这段代码看起来更好,谢谢!
    猜你喜欢
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2011-07-06
    • 2012-05-14
    相关资源
    最近更新 更多