【发布时间】:2014-01-09 10:37:56
【问题描述】:
我在我的网站中使用 jQuery UI 拖放和排序,但它不能在 chrome 和 opera 等 Android 设备浏览器中工作,但它在默认浏览器和 Firefox 移动设备中工作。甚至我使用了 Touch Punch 插件。
这个问题是因为安卓设备的浏览器兼容吗?
【问题讨论】:
标签: android jquery jquery-ui-sortable
我在我的网站中使用 jQuery UI 拖放和排序,但它不能在 chrome 和 opera 等 Android 设备浏览器中工作,但它在默认浏览器和 Firefox 移动设备中工作。甚至我使用了 Touch Punch 插件。
这个问题是因为安卓设备的浏览器兼容吗?
【问题讨论】:
标签: android jquery jquery-ui-sortable
我认为这可能是浏览器兼容性问题,并不是所有的 TouchPunch 演示都可以在我的 Android 4.3 设备上使用 Chrome 或默认浏览器,或者 iPad 4。
TouchPunch 确实声明它是一个 hack,所以我正在避免它并试图找到另一个解决方案。 Nestable 似乎工作得很好,但我认为它没有处于积极开发中。
更新
写完我的答案后,我读到 TouchPunches GitHub 页面上的演示不适用于某些运行 chrome 的移动设备,因为 GitHub 可能将 JS 作为 Text/Html 提供。
在本地或在开发服务器上使用 TouchPunch 脚本似乎工作正常,它只是 Git Hub 页面上的演示,它与移动版 chrome 存在问题。
【讨论】:
我在某些移动浏览器上遇到了同样的问题,而其他浏览器运行良好。如果按如下方式将 type="text/javascript" 添加到我的脚本标记中,我能够修复
<script type="text/javascript"><!-- copy TouchPunch JQuery hack here --></script>
或者如果你的js在外部文件中,一定要加上type属性
<script type="text/javascript" src="http://domain.com/pathtotouchpunchjsfile.js"></script>
(提示:为了不同浏览器之间的最大兼容性,我使用结束脚本标记而不是自动关闭它)
【讨论】:
我有同样的问题。 看看这个 fork 的修复:https://github.com/fr33kvanderwand/jquery-ui-touch-punch
您的触摸打孔事件问题正在这里讨论:https://github.com/furf/jquery-ui-touch-punch/issues/215
【讨论】:
chrome 70 以后不支持触摸事件,所以需要替换下面的行, jquery-ui-touch-punch/jquery.ui.touch-punch.js 第 14 行
$.support.touch = 'ontouchend' in document;
到
$.support.touch = 'ontouchend' in document || navigator.maxTouchPoints > 0;
【讨论】: