1

나는 같은 페이지에 여러 양식에 미친.눈에 거슬리지 자바 스크립트 레일 3.1 여러 양식, 같은 페이지

고유 한 양식이있을 때마다 정상적으로 작동하며이 양식이나 열의 고유 한 클래스 또는 고유 한 클래스를 식별 할 수 있습니다.

그러나 같은 양식의 여러 양식이있을 때 큰 문제가 다시 발생합니다.. 나는 새로운 코멘트를 작성할 때 나는 내가 가진 create.js.erb에, 부분 create_index 렌더링하려는 :

$("<%= escape_javascript(render 'create_index') %>").hide().prependTo(".comments_column").fadeIn(1500); 

문제는 그 형태 이상 많은 열이 클래스 .comments_column에있는 경우 동일한 클래스가있는 모든 열에서 렌더링 된 주석입니다.

JQuery와에있는 예는 이것이다 : 레일 3.1

http://jsfiddle.net/minitech/aC92Q/8/

이 예제를 작동하지 않습니다. 그 자바 스크립트를 넣으면 create.js.erb. 처음에는 생성 된 설명을 표시하지 않습니다. 내가 create.js.erb 만 넣으면

는 :

$("<%= escape_javascript(render 'create_index') %>").hide().prependTo(".comments_column").fadeIn(1500); 

클래스 .comments_column를 포함하는 모든 열에 부분을 렌더링합니다.

제 질문은 레일에 대해 제가이 열에서만 부분을 렌더링하기 위해 눌렀 던 양식이나 단추라고 어떻게 말합니까?

답변

0

문제가 해결되었습니다. 나는 아약스에 이벤트 리스너를 추가 할 것입니다 내 경우

ajax:before – right before ajax call 
ajax:loading – before ajax call, but after XmlHttpRequest object is created) 
ajax:success – successful ajax call 
ajax:failure – failed ajax call 
ajax:complete – completion of ajax call (after ajax:success and ajax:failure) 
ajax:after – after ajax call is sent (note: not after it returns) 

:

는 각 UJS AJAX 호출에 부착 할 수있는 6 개 사용자 정의 이벤트를 제공 레일 : 모든 세계를 들어이 문제가 그 성공을 내 제출 버튼에있는 이벤트 :

$('.comment_box form').bind('ajax:success', function() { 

    $("<%= escape_javascript(render(:partial => 'create_index'))%>").hide().prependTo($(this).parents(".comments_column").eq(0)).fadeIn(1500); 
}); 

매우 중요한 맞춤 이벤트 또는 다른 쪽은 잘 작동하지 않습니다.