消除双击效果
Getting rid of the double click effect
本文关键字:双击 更新时间:2023-09-26
这是我的小提琴。正如您所看到的,我定义了一个简单的点击事件处理程序:
$('#traveller > a').click(function(e) {
e.preventDefault();
var $ul = $('#traveller ul');
if($(this).hasClass('handle-next')) {
if(Math.abs($ul.position().top - parentPadding) < totalHeight - itemHeight) {
$ul.animate({top: '-=' + itemHeight});
}
}
else {
if($ul.position().top - parentPadding < 0) {
$ul.animate({top: '+=' + itemHeight});
}
}
});
我注意到,当我快速双击时,按下a.handle-next
/a.handle-prev
,ul
的位置会发生意外变化。
我为什么要避免这种行为?
只需检查$ul
是否已设置动画:
if($ul.is(':animated')) return;
演示
在执行事件处理程序主体之前,检查是否正在发生动画。
if(!$ul.is(":animated")){
if($(this).hasClass('handle-next')) {
if(Math.abs($ul.position().top - parentPadding) < totalHeight - itemHeight) {
$ul.animate({top: '-=' + itemHeight});
}
}
else {
if($ul.position().top - parentPadding < 0) {
$ul.animate({top: '+=' + itemHeight});
}
}
}
工作示例http://jsfiddle.net/A5u43/19/
您需要锁定与旅行者的任何动作,直到动画完成。这里我使用了锁定变量,但你可以使用任何方法来锁定它
$ul.animate({top: '-=' + itemHeight}, 400, 'swing', function(){
lock = false;
});
这是类似jsfiddle的
您可以用$ul.stop()来阻止它;就在你定义谁$ul是之前
这是小提琴
var $ul = $('#traveller ul');
$ul.stop(true,true);
http://jsfiddle.net/A5u43/23/
相关文章:
- 使用类从一个标记中双击事件
- onclick函数需要双击,因为类分配延迟
- 了解双击代码标记
- jquery Onclick函数带有导致双击的回调排序函数
- 防止双击执行两次jQuery post请求
- JavaScript双击事件
- 选择“字符串”并使用SeleniumJava双击
- jQuery UI自动完成需要在iOS上双击
- 使用jquery在html中添加双击操作
- 双击泛光灯单击
- 如何在Firefox中禁用视频的单击和双击控件
- 双击可更改树标签
- svg.js/svg平移缩放-双击交互
- 在WordSmith jquery中,双击后什么决定了链接图标的位置
- 宣传单:双击时不要触发点击事件函数
- d3 中是否有点击和双击事件.js力定向图
- 当单选按钮的标签可单击时双击
- Draw2d.js:通过双击将可编辑标签添加到现有连接
- 模拟双击拖动结束 - jquery UI
- 使用Javascript双击HTML中的空格时,选择上一个和下一个单词