2012-08-03 2 views
1

행운없이 Backbone.js 응용 프로그램을 사용하여 jGestures을 사용하려고 시도 중입니다.jGesture를 Backbone.js와 함께 사용하려면 특별한 것이 있습니까?

페이지 본문 맨 아래에 내 스크립트가 포함됩니다.

<script type="text/javascript" src="jquery-1.7.2.js"></script> 

<script type="text/javascript" src="jgestures.min.js"></script> 

<script type="text/javascript" src="underscore.js"></script> 
<script type="text/javascript" src="backbone.js"></script> 
<script type="text/javascript" src="backbone.localStorage.js"></script> 

<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script> 

<script type="text/javascript" src="src/app_root.js"></script> 
<script type="text/javascript" src="src/app_beverage.js"></script> 
<script type="text/javascript" src="src/app_order.js"></script> 
<script type="text/javascript" src="src/app_people.js"></script> 
<script type="text/javascript" src="src/app_router.js"></script> 

이렇게 제스처 처리기를 부착하십시오.

events: { 
    "tapone .test": "something" 
} 

은 내가 (바탕 화면에없는 모바일 장치를) 콘솔을 통해 수동으로 실행할 수 있기 때문에 이벤트 처리기가 제대로 연결되어 알고있다.

$(".test").trigger("tapone"); 

하지만 iOS 5에서 코드를 실행하면 jGestures 코드가 터치 이벤트를 생성하지 않는 것처럼 보입니다. 터치 이벤트를 발생시키는 데 필요한 다른 사람이 있습니까? 백본 라우터를 사용하고 있으므로 DOM을 업데이트 한 후 라이브러리를 다시 초기화해야합니까?

답변

0

Backbone.View.events 대리인은 jQuery.bind과 바로 위에 표시되며 Backbone.View.delegateEvents' code을 참조하십시오.

그래서 이벤트 바인딩 정의는 다음과 같이 작동 할 수있는 경우 :

$(<your View.el DOM element>).delegate(selector, eventName, method); 

는 그럼 백본으로 작동합니다.

귀하의 경우 예를 들어, 당신은 시도 할 수 있습니다 : 그것을 예상 할 때 이벤트가 트리거됩니다 이런 식으로 일을하는 경우는 다음하지 않는 경우

$(<your View.el DOM element>).delegate(".test", "tapone", function(){ console.log("hi! tapone"); }); 

시도는, jQuery를 직접 바인딩 이벤트를 정의하고보고 문제가 백본에서 벗어난 경우 문제가 구현에 있어야합니다. 두 경우 모두 백본 자체에 문제가 있다고 생각하지 않습니다.

+0

jGestures는 "바인드"에서는 작동하지만 "위임"에서는 작동하지 않는 것 같습니다. 나는 여기에서 실험을 해 보았습니다 - http://jsbin.com/uwoyep/1/edit - 백본과 작업을 "묶을"것인가? 또는 동적으로 생성 된 (클라이언트 측) 컨텐츠에 "위임"이 필요합니까? – Nippysaurus

관련 문제