2010-02-03 6 views
0

jquery 슈퍼 제스처 인 http://www.evanbot.com/article/super-gestures-jquery-plugin/22을 사이트의 인터페이스로 사용하고 있습니다. 나는 각각의 제스처를 원하는jquery 마우스 제스처/btn 대기열

나는 그것에 할당 된 일련의 작업을하는 데 사용 예 : 하나의 운동 (왼쪽 마우스를 이동 말은)는 사업부 페이드 사용자에 의해 수행

  • 동일한 동작이 수행 될 때, 다른 동작을 수행 할 때, 다른 동작을 수행 할 때 마지막 동작에 대해 잊어 버린 채로 사라집니다.

이것은 특정 동작에 대한 동작이 없어 질 때까지 계속 될 수 있습니다. 그 다음이 일련의 마우스 움직임을 위, 아래, 왼쪽, 오른쪽, 원, 지그재그 등으로 적용 할 것입니다.

제 질문은 어떻게 이런 방식으로 일련의 동작을 수행 할 수 있습니까?

미리 감사드립니다. 제스처는 당신이 큐의 다음 액션을 호출하는

... 
callback: function(gesture) { 
    if(0 == queue.length) { 
     ... 
    } else if('circle-clockwise' == gesture) { 
     var fn = queue.shift(); // get the first element in queue 
     fn(); 
    } 
    ... 
} 
... 

을 사용하여 수행 할 때 사용하는

+0

그래서 동일한 이벤트를 작업 대기열에 연결 하시겠습니까? 이벤트 호출 시마다 작업의 대기열에서 제외되고 수행됩니까? 함수를 수행하는 동작을 목록에 넣고 제스처 콜백 함수에서 이러한 함수에 이벤트 호출을 전달하는 것보다 더 복잡한 작업을 수행해야합니까? –

+0

@Aleksi 본질적으로 그렇습니다. 결국 어떻게 든 사용자가 수행 한 작업/기능을 기록하고 jquery로 기억 된 데이터를 가지고 있기 때문에 인터페이스가 이전 작업을 호출하고 더 지능적으로 보일 수 있습니다. 그러나 지금은 위의 목표를 달성하는 방법을 배우고 싶습니다. 상대적으로 바람직합니다. 도움에 감사드립니다! – mtwallet

답변

0

당신은 행동의 큐를 개최 자바 스크립트 배열을 사용할 수는 다음

var queue = []; 

queue.push(function() { 
    alert('hello world') 
}); 
queue.push(function() { 
    alert('goodbye cruel world'); 
}); 

를 수행합니다.

참고 : 함수 호출을 queue.shift()();와 같이 작성할 수 있습니다. 당신이 더 짧고 싶다면.

+0

감사합니다 Aleksi 나는 이것을 알아 내려고 시도 할 것입니다. – mtwallet