2013-09-07 3 views
0

jQuery Mobile (jQm) 앱을 개발 중입니다.jQuery Mobile - preventDefault() on button (링크)

제거 버튼과 같은 중요한 요소에 대해 템포드 이벤트를 사용하여이 요소가 원치 않는 트리거로부터 보호되는지 확인하십시오.

jQm 팝업에서 Remove 버튼을 생성하고 일부 JS를 추가했지만, 기본 작업을 event.preventDefault() 및 및 return false이 아닌 강제로 종료 할 수 없습니다.

jsFiddle을 내 코드의 사본으로 준비했습니다. 팝업에는 누른 탭의 표시기로 간단한 진행 표시 줄이 있습니다. 당신은 여기를 시도 할 수 있습니다 : jsFiddle(참고 : HTML5 데이터 태그 taphold="true"은 JQM 기본 아닌) 해결 방법으로

, 나는 현재 버튼과 같은 스타일 <div><a href="#" data-role="button"...></a>을 대체하고있다. 이것은 기본 동작이 없기 때문에 잘 작동하지만 "적절한"해결책이 작동하지 않는 이유가 궁금합니다.

event.preventDefault(); 코드의 상기 부분에 사용 event.stopImmediatePropagation();

답변

2
$("a:jqmData(taphold='true')").bind("vmousedown vmouseup", function(event) { 
    event.preventDefault(); 
    event.stopImmediatePropagation(); 

선택된 원소 (들) 결합되는 모든 이벤트에 vmousedownvmouseup 이벤트 아닌 참조.

이것은 click 이벤트의 기본 동작이 여전히 있음을 의미합니다. 따라서 제거 버튼을 클릭하면 클릭 이벤트가 발생하고 바로 팝업이 닫힙니다.

이 정보가 도움이되기를 바랍니다.

+0

나는 그것이 평범한 것처럼 간단하고 어리 석다는 것을 알았다. 기본적으로'vmousedown vmouseup click'에서'click'을 놓쳤습니다. 이걸 가져 주셔서 감사합니다. – Vaclav