最近在做一个移动端的项目,其中有一个收藏列表,其中包含几个事件。
塔城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
1.点击跳转详情页。
2.长按显示遮罩层和删除按钮
3.点击删除按钮,删除此项。
下面会详细介绍我处理此问题时所出现的问题,及处理方法(本文基于jQuery)
首先我对列表添加了长按事件,添加完之后,发现我的长按事件已经可以成功执行了。但是却出现了新的问题:
这个问题好处理,只需添加一个变量,来判断是否为长按事件
这样上面的问题就完美解决了。
接下来就是给遮罩层上的删除按钮添加事件
但是在这里就发现了新的问题
所以就需要一个新的事件来覆盖原本的事件
然后,整个点击跳转,长按显示删除,删除事件,就已经完美解决了。
但是,在移动端查看的时候就会发现正常的滚动事件被preventDefault屏蔽了。
此处有两种解决方式:
1.删除 e.preventDefault();
删除preventDefault有可能会出现其它情况,不过我暂时没发现如果出现其它情况,可使用下面的方法
删除的点击事件也是如此
By : Yimi-shan
和 pc端是一样的 不过移动端 有几个 特殊的事件
比如touch 事件
touchstart:手指触摸到屏幕会触发
touchmove:当手指在屏幕上移动时,会触发
touchend:当手指离开屏幕时,会触发
touchcancel:可由系统进行的触发,比如手指触摸屏幕的时候,突然alert了一下,或者系统中其他打断了touch的行为,则可以触发该事件
tap事件
tap: 手指碰一下屏幕会触发
longTap: 手指长按屏幕会触发
singleTap: 手指碰一下屏幕会触发
doubleTap: 手指双击屏幕会触发
swipe事件
swipe:手指在屏幕上滑动时会触发
swipeLeft:手指在屏幕上向左滑动时会触发
swipeRight:手指在屏幕上向右滑动时会触发
swipeUp:手指在屏幕上向上滑动时会触发
swipeDown:手指在屏幕上向下滑动时会触发
这些事件不能用 $(xx).事件名() 去绑定 应该
$(document).bind('touchmove', function (event) {
console.log('手指在屏幕上滑动了')
event.preventDefault();
});
解绑 用unbind
你把$(this).html()放到 setTimeout之前去写 用个变量接 在里面再直接用这个变量 放里面写的话是在另一个方法里 this不是指代当前那个元素了
具体实现方法如下:
1、打开任意页面
2、粘贴如下代码:
script type="text/javascript"
thisURL = document.URL;
strwrite = "img src='【此处省略,请见图片截图】/chart?cht=qrchs=150x150choe=UTF-8chld=L|4chl=" + thisURL + "' width='150' height='150' alt='La_Clover提示您:用手机扫一扫二维码,轻松分享' /";
document.write( strwrite );
/script
3、保存代码
4、默认尺寸是150的,可以自行修改。
5、上传到空间即可查看到效果
一个div, overflow:hidden; 里面放图片
按钮加一个事件监听,记得阻止默认事件。
在按下这个事件触发的时候,新建一个setInterval
鼠标松开的时候释放这个计时器。
计时器里面加上控制div 高和宽度的函数就可以了
希望有帮到您
直接上代码了,不懂可追问
var timeout = undefined;
$("#mydiv").bind("mousedown", function() {
timeout = setTimeout(function() {
alert(1);
}, 3000);
});
$("#mydiv").bind("mouseup", function() {
clearTimeout(timeout);
});