2013-08-06 3 views
1

레일 UJS를 사용하여 버튼을 자바 스크립트 함수의 실행을 취소 할 수 없습니다 : 실행내가 (아래 HAML에서) 버튼이있어

%button{ class: 'remove-fields', data: { confirm: "Are you sure?" } } 
    Remove 

누르면 자바 스크립트 코드 일부 :

$('.edit-profile').on('click', '.remove-fields', function(event) { 
    // my code here... 
    event.preventDefault(); 
}); 

내 코드가 "Are you sure"프롬프트가 나타나기 전에 실행되는 것으로 보이므로 취소 버튼을 누르면 아무 효과가 없습니다.

온라인으로 볼 수있는 모든 것은 단추를 사용하여 양식을 제출하는 것으로 (데이터 확인 특성이 예상대로 작동 함) 참조하지만 코드를 호출하기 위해 단추를 사용하고 있습니다. UJS를 사용하여 코드 실행을 취소 할 수 있습니까?

답변

1

jQuery의 stopImmediatePropagation이 필요할 수 있습니다.

설명 : 나머지 처리기가 실행되지 않도록 유지하고 이벤트가 DOM 트리 위로 버블 링하는 것을 방지합니다.
$('.edit-profile').on('click', '.remove-fields', function(event) { 
    // my code here... 
    event.preventDefault(); 
    event.stopImmediatePropagation(); 
}); 
+0

안녕하세요, 고맙겠지 만 레일의 확인 대화 상자를 완전히 취소 했으므로 보관하고 싶습니다. 내가 원하는 것은 대화 상자에서 취소를 누르면 코드가 실행되지 않아야한다는 것입니다. – manishie