내 자바 스크립트가 긁히지 않았으며 제공된 함수를 재정의하려고 고심하고 있습니다.제공된 rails.js를 수정하지 않고 Rails 3의 눈에 잘 띄지 않는 JavaScript 기능을 어떻게 무시할 수 있습니까?
바닐라 자바 스크립트 confirm()
대신 jQuery UI 모달 대화 상자를 사용하여 a[data-confirm]
을 처리하는 방식을 수정하고 싶습니다.
rails.js
의 해당 기능은 allowAction(element)
입니다. 이 파일을 다른 파일에 정의하면 firebug 콘솔에서 성공적으로 호출 할 수 있지만 버전은 여전히 data-confirm
속성이있는 앵커에서 호출됩니다.
(function($) {
...
})(jQuery);
공급 rails.js
을 수정없이이 기능을 를 오버라이드 (override) 할 수있는 합리적인 방법이 있나요 : 전체 rails.js
파일에 싸여 있기 때문에
이 나는 것 같아요?
편집 :
allowAction
-rails.js
의 호출이 .live
전화에 싸여 :
$('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
var link = $(this);
if (!allowAction(link)) return false;
if (link.attr('data-remote')) {
handleRemote(link);
return false;
} else if (link.attr('data-method')) {
handleMethod(link);
return false;
}
});
가 나는 또한 아무 소용, 이전과 rails.js
후 내 자바 스크립트를 포함했습니다.
편집 :
내가 .die('click.rails')
를 호출한다면, 그때 전체 click.rails
이벤트를 다시 정의 할 수 있지만, 원래 handleRemote()
및 handleMethod()
함수가 호출되지 않습니다.
해커 뉴스에서 이것을 보았습니다. – nfm
더 나은 점은, 이제'confirm' 대화 상자를'$ .rails' 객체로 옮겼습니다. 그래서 다른 확인 대화 상자를 사용하는 것이 더 쉽습니다. 업데이트 된 답변보기 – jangosteve
확인을 트리거 한 요소에 액세스하여 어떻게 대화 상자를 사용자 정의 할 수 있는지 궁금합니다. –