2011-12-12 2 views
5

버튼이 휴대 전화에서 느립니다 (대부분의 브라우저에서 끌기 감지로 인해 최소 300ms 지연). 구글은이 문제를 해결하기 위해 일부 자바 스크립트 썼다 : http://code.google.com/mobile/articles/fast_buttons.htmlGoogle의/MBP FastButton 코드를 백본 이벤트와 함께 사용하는 방법

모바일 HTML5 상용구 사람들이 자신의 패키지에이 통합 : https://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86

은 내가 쉽게 백본이 사용할 수있는 방법을 알아 내려고합니다. 예 :

events: { 
    "fastbutton button.save": "save" 
} 

빠른 버튼은 빠른 버튼 코드로 클릭 또는 마우스를 대체합니다. 나는 MPB.fastbutton 코드를 약간 다시 작성해야 할 것으로 기대한다. 아무도이 짓을 한거야?

답변

8

을 찾고되지 않습니다, 그것은 투명 터치가 이벤트를 클릭하여 변환합니다 FastClick 같은 라이브러리를 사용하는 것이 아마 더 온건하다고 읽기 터치 된 요소를 제거하고 300ms 지연을 제거하십시오.

new FastClick(document.body)만큼 쉽기 때문에 준비가 완료되었습니다.

클릭 이벤트가 등록 된 요소에 지연이 없도록 터치 이벤트의 동작이 모바일 장치에서 변경되는 경우 또는 경우에 한 줄의 코드 만 변경하여 'fastbuttons'을 일반 버튼으로 변환하기 위해 모든 코드를 변경하십시오. 유지 보수 가능성은 항상 좋습니다.

+1

아직 테스트하지는 않았지만 이것은 (여전히) 내가 필요로하는 것과 똑같은 것 같습니다. –

+0

그냥 내 샌드 박스 백본 응용 프로그램에서 테스트했습니다. 설명 된대로 작동합니다. 'document.body' 전체에'FastClick' 객체를 인스턴스화 할 때 발생할 수있는 확장 성 문제가 있습니까? 문서에는 특정 요소에 대해 클래스를 인스턴스화하는 예제 만 포함됩니다. –

+1

FT 웹 앱은'document.body'에서 인스턴스화 된 FastClick을 사용하며 아무런 문제가 없습니다. 아마도 일반적인 사례가 몸에 인스턴스화하는 것이 분명하도록 예제를 업데이트해야합니다. –

1

나는 이것이 당신이 원하는 방식으로 작동하지 않을 것이라고 확신합니다. "fastclick"과 같이 추가 이벤트가 발생하는 대신 요소를 fastButton으로 정의해야합니다.

new MBP.fastButton($("button.save"), function() { this.save(); }.bind(this)); 

백본의 경우, 쉽게 초기화() 함수에서이 작업을 수행 할 수있는 이벤트 객체 대신에 : 당신은 실제로이 같은 요소와 코드를 통과하는 fastbutton의 인스턴스를 만들어야합니다.

// 죄송합니다, 당신이 정말 대신 모든 곳에서 'fastbuttons'을 만드는이 :