javascript - iOS 上的 JQuery Mouseup

标签 javascript jquery ios mousedown mouseup

我最近添加了 jquery.mouse2touch.min.js插件到我的游戏中,测试后我遇到了问题。我的移动系统由两个 div 组成(一个向左移动玩家,一个向右移动),基本上当你按住 div 时,玩家应该朝一个方向移动,当你松开时,他应该停止。问题是,如果我按下太久然后松开,播放器不会停止。

这是让他移动的代码:

// iControl System
var $div = $('#character');

$('#ios-left').mousedown(function(){
   leftTimer = setInterval(function(){
       processWalk('left');
   },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(leftTimer);
}).mouse2touch();

$('#ios-right').mousedown(function(){
    rightTimer = setInterval(function(){
       processWalk('right');
    },100);
}).mouseup(function(){
    $('#character').stop();
    clearInterval(rightTimer);
}).mouse2touch();

还有一把 fiddle : http://jsfiddle.net/gqfesrhw/

谢谢(如果有人认为这可能是 mouse2touch 插件的问题,我愿意接受其他建议)

最佳答案

<强> Working Fiddle

计时器的问题,您应该在移动之前清除时间间隔。您的全局变量 TimerWalkclearInterval(TimerWalk); 应该很有用。

这是代码块

$('#ios-left').mousedown(function () {
    clearInterval(TimerWalk);
    TimerWalk = setInterval(function () {
        processWalk('left');
    }, 100);
}).mouseup(function () {
    $div.stop();
    clearInterval(TimerWalk);
}).mouse2touch();

$('#ios-right').mousedown(function () {
    clearInterval(TimerWalk);
    TimerWalk = setInterval(function () {
        processWalk('right');
    }, 100);
}).mouseup(function () {
    $div.stop();
    clearInterval(TimerWalk);
}).mouse2touch();

这只是为了正确移动,您可能需要解决其他问题。

关于javascript - iOS 上的 JQuery Mouseup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957080/

相关文章:

javascript - 在 for 循环 : variable scope miscomprehension 内绑定(bind)监听器

javascript - Jquery slimscroll 不隐藏

javascript - 如何根据滚动位置淡入淡出导航栏

objective-c - Objective-C:尝试在UIScrollView中实现自己的拖动,遇到了很多问题

javascript - JQuery UI 拖放在项目到达目的地时显示警报

php - 如何在html文本区域中逐句获取字符串

ios - 当@objc 推理关闭时,Xcode 为框架生成的伞形 header 不会导入 Foundation

ios - HTML5 和 MP4 与 M2TS 容器

javascript - 动态 "noneSelectedText"用于多选 jquery 框

jquery - 更改时下拉值未更改