javascript长按事件实现方式
先贴出实践中实现的代码,参考(https://segmentfault.com/q/1010000011640937?sort=created):
parentObj.addEventListener("touchstart", function (e) {
console.log('touchstart');
timer = setTimeout(function () {
console.log('LongPress');
e.preventDefault();
LongPress(parentObj);
}, 800);
});
parentObj.addEventListener("touchmove", function (e) {
console.log('touchmove');
clearTimeout(timer);
timer = 0;
});
parentObj.addEventListener("touchend", function (e) {
console.log('touchend');
clearTimeout(timer);
//if (timer != 0) {
// alert('这是点击,不是长按');
//}
return false;
});
先获取元素对象,然后设置ontouchstart和ontouchend事件,注意,这里的是事件,和touchstart(方法)有所区别,然后在手机浏览器中,为了避免长按弹出窗口,设置e.preventDefafult()来屏蔽弹出。
其实,这些是比较容易,最常见的实现方式,在网上找资料的时候发现很多其他的实现,比如利用zepto.js插件,这是一个jQuery.js的移动端实现,通过这个库,实现方式如下:
,这个实现的链接(https://segmentfault.com/q/1010000003956296)
自己也实现了,调试过程中,发现,在微信开发者工具里面,没有问题,longTap能调用,在手机上,就几乎调用不成功,触发的概率非常小,不知道是因为和手机上长按时有微小移动有关系。所以最终放弃了这个实现。
**********************************************分割线**********************************************
关于长按的弹窗菜单怎么屏蔽,网上查了很多资料,都是设置e.preventDefault(),来实现,但是一直用的是
//obj.addEventListener("touchstart", function (e) {
// e.preventDefault();
//}, false);
这个设置的应该是屏蔽触屏的反应,设置屏蔽弹出菜单的应该是这样:
document.oncontextmenu = function (e) {
e.preventDefault();
};
javascript长按事件实现方式的更多相关文章
- Android自定义长按事件
Android系统自带了长按事件,setOnLongClickListener即可监听.但是有时候,你不希望用系统的长按事件,比如当希望长按的时间更长一点的时候.这时候就需要自己来定义这个长按事件了. ...
- javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记
1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...
- javaScript事件机制深入学习(事件冒泡,事件捕获,事件绑定方式,移除事件方式,阻止浏览器默认行为,事件委托,模拟浏览器事件,自定义事件)
前言 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间.可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码.这种在传统软 ...
- JavaScript三种绑定事件的方式
JavaScript三种绑定事件的方式: 1. <div id="btn" onclick="clickone()"></div> // ...
- javascript之-深入事件机制
作者:yuyuyu链接:https://zhuanlan.zhihu.com/p/24620643来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.1 事件绑定的方式 ...
- js实例分析JavaScript中的事件委托和事件绑定
我们在学习JavaScript中,难免都会去网上查一些资料.也许偶尔就会遇到“事件委托”(也有的称我“事件代理”,这里不评论谁是谁非.以下全部称为“事件委托”),尤其是在查JavaScript的事件处 ...
- javaWeb核心技术第四篇之Javascript第二篇事件和正则表达式
- 事件 - 表单提交(掌握) "onsubmit" - 单击事件(掌握) "onclick" - 页面加载成功事件(掌握) "onload" ...
- 浅谈Javascript单线程和事件循环
单线程 Javascript 是单线程的,意味着不会有其他线程来竞争.为什么是单线程呢? 假设 Javascript 是多线程的,有两个线程,分别对同一个元素进行操作: function change ...
- javascript中的事件冒泡、事件捕获和事件执行顺序
谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...
随机推荐
- [redis读书笔记] 第一部分 数据结构与对象 链表
二 链表 1.链表节点使用ListNode结构,是一个双向的链表,同时,还实现了一个控制所有ListNode的结构list: typedef struct listNode { // 前置节点 str ...
- ELF文件之四——使用链接脚本-2个函数-data
main.c ; int main() { ; } int add() { ; } main.o 反汇编可以看到多了.text节的反汇编,存储的是全局变量的初始化数值 main.o对比,text段后面 ...
- debian wget 报ERROR: The certificate of ‘xxx’ is not trusted.
# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz --2019-01-11 15:04:41-- https://w ...
- bat常用符合和for语句等
一.开头 @echo off(默认是echo on)@echo off执行以后,后面所有的命令均不显示,包括本条命令 二.特殊符号 1. | 命令管道符,echo Y|rd /s c:\abc,通过管 ...
- light oj 1102 - Problem Makes Problem组合数学(隔板法)
1102 - Problem Makes Problem As I am fond of making easier problems, I discovered a problem. Actuall ...
- git学术
点滴是为了生活,学术是为了未来.点滴经常看,学术用到的时候看看. #### git add 之后, git reset HEAD filename 和git checkout HEAD filenam ...
- mysql出现 Unknown column 'Password' in 'field list'
linux安装了mysql之后初始化密码获取:出现了下面的内容,密码很尴尬,无法用root登录: grep 'temporary password' /var/log/mysqld.log [Note ...
- 14.git的安装使用
目录 一.版本控制器 二.git 简介 git与svn比较 git的工作流程 版本库间的通信 git分支管理 三.git使用 流程(核心总结) 安装 基础命令 将已有的文件夹 - 初始化为git仓库 ...
- ASP.NET Core MVC的基础学习笔记
最近由于“武汉肺炎”疫情在家办公,也没闲着,最近学习了一下asp.net core mvc的一些网页开发的的基础知识,话不多说直接上教程! 一.创建Web应用程序 1)创建新项目--->找到 “ ...
- unity 教程Tanks中的Transform.InverseTransformPoint理解
Tanks教程中在处理摄像机缩放的时候使用了下面的函数,取两个坦克的中心点之后,根据两个坦克之间的距离,保证两个坦克都在屏幕中,然后进行缩放. private float FindRequiredSi ...