通过if条件防止双触摸事件

时间:2013-12-27 19:39:13

标签: javascript jquery ios iphone css

我正在为响应式网站构建一个模块,允许用户点击初始屏幕并从右侧显示一个面板。然后他们可以点击关闭按钮并关闭面板。

问题在于,如果用户在面板完成动画制作之前多次点击,则会将面板移动太远而不可逆转的动作加倍。

我是JS的新手,无法弄清楚如何解决这个问题。我认为可以使用var和if语句完成,但它似乎不起作用。

我设置了var

  pstatus = 1;

然后我将每个事件包装在if语句中,但它不起作用。我在没有if语句的情况下离开了它,因此可以查看它。

任何帮助将不胜感激!

http://codepen.io/bsley/pen/kjBcz

在iPhone上(Safari)http://codepen.io/bsley/debug/kjBcz

3 个答案:

答案 0 :(得分:0)

我不知道如何从Javascript解决这个问题,但是从Objective C你要做的是在action方法中将按钮设置为disabled = YES,然后在动画完成后将其设置为disabled = NO 。

我认为解决方案与Javascript类似。

答案 1 :(得分:0)

我会尝试这样做:

1)点击,幻灯片发生。

2)滑动时,点击变为禁用。

3)完成滑动后,点击将重新启用。

答案 2 :(得分:0)

您可以创建一个javascript“lock”:

var lock = false;
$("#MyElement").on("namespace.click", function(){
    if(!lock){
        lock = true;
        //Move Element
        lock = false;
    }
});

但是,我建议调查Underscore.js并使用throttle()方法:http://underscorejs.org/

您可以通过替换:

来模拟这一点
lock = false;

使用:

customThrottle();


var timerDuration = //Duration to wait in milliseconds;
function customThrottle(){
    setTimeout(function(){
            lock = false;
        },
        timerDuration
    );
}