jquery - 是否有适用于 jQuery Mobile 的 jqueryUi.mouse.js 版本?

标签 jquery jquery-ui mobile jquery-mobile

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

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

最佳答案

您可能可以自己扩展该库,而无需做太多工作。

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

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

关于jquery - 是否有适用于 jQuery Mobile 的 jqueryUi.mouse.js 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504379/

相关文章:

jquery - 发送变量 fancybox onclick 事件

javascript - 渐变背景 UL

mobile - 用于移动网站的 (amd) 脚本加载器

java - 停止循环时遇到问题

android - 复选框在手机上不可见

Javascript 全屏在 JSFiddle 中不起作用

jQuery - 获取下一个元素,无论 DOM 放置如何

javascript - 单击 jQuery Accordion header 内的链接

javascript - 如何不关闭 jQuery UI 的对话框?

javascript - 将事件绑定(bind)到 jQuery Modal Pop Up 中动态添加的元素