让 jQuery UI draggable 适配移动端

 

背景:

在移动端,本人要实现对某个元素的拖动,想到使用 jQuery UI 的 draggable 功能。但是发现此插件的拖动只支持PC端,不支持移动端

 

原因:

原始的 jQuery UI 里,都是mousedown、mousemove、mouseup来描述拖拽和鼠标的点击事件,而在移动端里,肯定要新添touchstarttouchmovetouchend来描述拖拽和手指的点击事件

 

实现 demo:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport"><title>jQuery UI draggable 适配移动端</title>
</head>
<body>
<img id="img" src="http://placehold.it/200x100"><script src="//cdn.bootcss.com/jquery/3.0.0-beta1/jquery.js"></script>
<script src="//cdn.bootcss.com/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script>// jQuery UI draggable 适配移动端var moveFlag = 0; // 是否移动的flag// /iPad|iPhone|Android/.test( navigator.userAgent ) &&
    (function ($) {var proto = $.ui.mouse.prototype, _mouseInit = proto._mouseInit;$.extend(proto, {_mouseInit: function () {this.element.bind("touchstart." + this.widgetName, $.proxy(this, "_touchStart"));_mouseInit.apply(this, arguments);}, _touchStart: function (event) {this.element.bind("touchmove." + this.widgetName, $.proxy(this, "_touchMove")).bind("touchend." + this.widgetName, $.proxy(this, "_touchEnd"));this._modifyEvent(event);$(document).trigger($.Event("mouseup"));//reset mouseHandled flag in ui.mousethis._mouseDown(event);//console.log(this);//return false;//--------------------touchStart do something--------------------
                console.log("i touchStart!");}, _touchMove: function (event) {moveFlag = 1;this._modifyEvent(event);this._mouseMove(event);//--------------------touchMove do something--------------------
                console.log("i touchMove!");}, _touchEnd: function (event) {// 主动触发点击事件if (moveFlag == 0) {var evt = document.createEvent('Event');evt.initEvent('click', true, true);this.handleElement[0].dispatchEvent(evt);}this.element.unbind("touchmove." + this.widgetName).unbind("touchend." + this.widgetName);this._mouseUp(event);moveFlag = 0;//--------------------touchEnd do something--------------------
                console.log("i touchEnd!");}, _modifyEvent: function (event) {event.which = 1;var target = event.originalEvent.targetTouches[0];event.pageX = target.clientX;event.pageY = target.clientY;}});})(jQuery);</script>
<script>// my js
    $("#img").draggable();
</script>
</body>
</html>

 

 

参考资料:

jQuery Ui Draggable在移动端浏览器不起作用解决方案

 

转载于:https://www.cnblogs.com/xjnotxj/p/5551548.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LAMP(7限定某个目录禁止解析php、 限制user_agent、 PHP相关配置、PHP扩展模块

限定某个目录禁止解析php防止***上传一个目录文件php&#xff0c;网站会从而解析php,对我们的网站有很大的危险。因此&#xff0c;我们需要在能上传文件的目录直接禁止解析PHP代码禁止步骤1.编辑虚拟主机配置文件&#xff1a;增添内容核心配置文件内容<Directory /data/wwwr…

编译器的功能是什么

1、编译器就是将“一种语言&#xff08;通常为高级语言&#xff09;”翻译为“另一种语言&#xff08;通常为低级语言&#xff09;”的程序。一个现代编译器的主要工作流程&#xff1a;源代码 (source code) → 预处理器(preprocessor) → 编译器 (compiler) → 目标代码 (obje…

八、走向三维

八、走向三维 我们前面花了七篇博文做铺垫&#xff0c;我们所做的一切努力都是为了最后的这一击——立体成像。因为玉米的这个系列文章是对双目视觉几何框架的总结。此处跳过匹配&#xff0c;假设左右图像点的完美匹配的。只看在几何上&#xff0c;三维坐标是如何被还原的。相对…

通用连接池项目开启

通用连接池项目开启 待完善......转载于:https://www.cnblogs.com/aresyl/p/5552092.html

HALCON示例程序fin.hdev通过形态学检测缺陷

HALCON示例程序fin.hdev通过形态学检测缺陷 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_window (‘off’) read_image (Fins, ‘fin’ [1:3]) get_image_size (Fins, Width, Height) dev_close_window () dev_open_window (0, 0, Width[0],…

FEZ前端模块化工程开发框架

FEZ FEZ 是面向前端模块化工程的开发框架。主要目的是统一前端开发模式和项目开发结构&#xff0c;自动化前端工作流&#xff0c;提高开发效率和开发质量。使用持续集成等软件工程的架构模式&#xff0c;集成众多业界先进的解决方案&#xff0c;让研发人员更专注于业务逻辑的实…

栈内存和堆内存

堆和栈这两个字我们已经接触多很多次&#xff0c;那么具体是什么存在栈中什么存在堆中呢&#xff1f;就拿JavaScript中的变量来说&#xff1a; 首先JavaScript中的变量分为基本类型和引用类型。 基本类型就是保存在栈内存中的简单数据段&#xff0c;而引用类型指的是那些保存在…

L~M方法

L~M方法&#xff1a; L~M&#xff08;Levenberg-Marquardt&#xff09;方法有些让人摸不清头脑。玉米觉得L~M让人困扰的主要原因有两点&#xff1a;一是L~M从何而来、二是L~M怎么样用&#xff1f;因为玉米也不是研究最优化理论的&#xff0c;所以玉米在这里用较为通俗的观点&a…

Android——Activity去除标题栏和状态栏

一、在代码中设置 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除title requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉Activity上面的状态栏getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSC…

Ghosts for Tea

Ghosts for Tea 喝茶&#xff1f;闹鬼&#xff1f; Ten pence for a view over the bay . said the old man with the telescope. Lovely clearmorning. Have a look at the old lighthouse and the remains of the great shipwreckof 1935. “在如此可爱清爽的早晨&#xff0…

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_pc (‘off’) dev_update_window (‘off’) dev_update_var (‘off’) read_image (Image, ‘die_pads’) dev_close_w…

IDEA将项目上传至码云/GitHub托管

前言 好久都没有写博客了&#xff0c;由于博主之前一直都在上班处于加班的阶段&#xff0c;所以根本就没有时间去学习。现在请假回到学校写论文&#xff0c;有时间来学习了。 所以会不断的进行博客的更新&#xff0c;以及分享我在公司学到的一些新的技术&#xff0c;希望大家多…

BZOJ 1937: [Shoi2004]Mst 最小生成树 [二分图最大权匹配]

传送门 题意&#xff1a; 给一张无向图和一棵生成树&#xff0c;改变一些边的权值使生成树为最小生成树&#xff0c;代价为改变权值和的绝对值&#xff0c;求最小代价 线性规划的形式&#xff1a; $Min\quad \sum\limits_{i1}^{m} \delta_i$ $Sat\quad $非树边边权$\ge$生成树上…

找bug

1.在输入数据按保存键后不知道数据是否已经存入数据库。 修改&#xff1a;增加一个对数据库的监听事件来监听数据库是否发生变化。 2.空数据也能保存成功。 修改&#xff1a;增加一个监听事件来检测是否输入数据。 3.在输入框中输入不否和输入框对数据的要求&#xff0c;但不提…

HALCON示例程序forest.hdev识别森林中的树

HALCON示例程序forest.hdev识别森林中的树 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_close_window () dev_update_window (‘off’) read_image (Forest, ‘forest_air1’) get_image_size (Forest, Width, Height) dev_open_window (0, 0, Width…

Hadoop学习之路(十八)MapReduce框架Combiner分区

对combiner的理解 combiner其实属于优化方案&#xff0c;由于带宽限制&#xff0c;应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算&#xff0c;计算规则与reduce一致&#xff0c;所以combiner也可以看作特殊的Reducer。 执行combiner操…

cocos2dx游戏--欢欢英雄传说--添加攻击按钮

接下来添加攻击按钮用于执行攻击动作。同时修复了上一版移动时的bug。修复后的Player::walkTo()函数&#xff1a; void Player::walkTo(Vec2 dest) {if (_seq)this->stopAction(_seq);auto curPos this->getPosition();if (curPos.x > dest.x)this->setFlippedX(t…

Yii2.0 rules常用验证规则

设置一个修改方法&#xff0c;但是save&#xff08;&#xff09;&#xff0c;没有成功&#xff0c;数据修改失败&#xff0c;查了好久&#xff0c;一般情况就是不符合rules规则&#xff0c;而我没有设置rules规则&#xff0c;重新设置了一个不能为空&#xff0c;然后就修改成功…

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)

HALCON示例程序gray_features.hdev提取灰度图的不同特征&#xff08;area_center_gray 、elliptic_axis_gray&#xff09; 示例程序源码&#xff08;加注释&#xff09; 读入图片 read_image (Image, ‘monkey’)二值化 threshold (Image, Region, 128, 255)分割连通域 conne…

Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Artificial Intelligence and Robotics Research人工智能与机器人研究, 2014, 3, 25-33Published Online May 2014 in Hans. http://www.hanspub.org/journal/airrhttp://dx.doi.org/10.12677/airr.2014.32005