2014-11-12 1 views
0

그래서 다음과 같은 것이 필요합니다. 기본적으로 사용자가 손가락으로 터치하여 손가락을 움직여 특정 방식으로 캐릭터를 움직이는 2 차원 터치 패드입니다. 이것은 내 PC에서 제대로 작동하지만 iOS에서 테스트 할 때 작동하지 않는 것 같습니다. 그 이유는 아마도 마우스가 없기 때문일 것입니다. 따라서 마우스가마우스 업은 작동하지 않습니다. 대안이 있습니까? 나는 keydown키 업을 사용하려고 시도했지만 그 중 하나는 작동하지 않았습니다.Mouseup 및 mousedown이 ios에서 작동하지 않습니다.

var $div = $('#character'); 

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

감사 :

여기 내 코드입니다! 링크 내 질문 :

편집 (I 캐릭터 이동을 자신의 손가락으로 사업부를 누르고 사용자가 필요로하고 그는 자신의 손가락을 놓을 때, 문자가 중지해야 명심) JQuery Mouseup on iOS

답변

0

터치 이벤트에 대한 마우스 이벤트를 시뮬레이트하기 위해 아주 작은 무게의 jquery.mouse2touch.min.js 플러그인을 사용하십시오.

마우스 이벤트 처리기 동작을 사용하여 아래의 $("#elmentID").mouse2touch() 또는 $(".elment-css-class").mouse2touch()과 같은 이벤트를 터치하면 모든 마우스 기반 기능을 터치하여 복사 할 수 있습니다. 코드에서

아래처럼 mouse2touch()를 호출 할 수

$('#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(); 

편집 : 또 다른 Question를 연결하고 여기에 내가 같은 대답을 제공하고있어하십시오.

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(); 

이는 적절한 운동 수정되어, 당신은 다른 문제를 해결하기 위해해야 ​​할 수도 있습니다 코드 블록이다.

+0

채팅의 다른 문제를 도와 줄 수 있습니까? – NotToBrag

+1

확실히 채팅 요청을 보내시겠습니까? –

+0

충분한 담당자가 아직 없습니다. 미안하지만, 게시 하시겠습니까? – NotToBrag

관련 문제