1

私は同じページ内の複数のフォームに夢中です邪魔にならないJavaScriptのレール3.1複数のフォーム、同じページ

ユニークなフォームがある場合はすべてうまく動作し、このフォームまたはカラムの一意のIDまたは固有のクラスを識別できます。

しかし、同じページに複数のフォームがあると、大きな問題が戻ってきます。私は新しいコメントを作成するとき、私は私が持っているcreate.js.erbに、部分的create_indexをレンダリングしたい:

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

の問題は、フォーム上の多くの列は、クラス.comments_columnであるかどうかコメントは同じクラスのすべての列に表示されます。 3.1この例で作業していないレールの場合

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

:jqueryの中

例がこれです。もし私がそのjavascriptを入れたら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); 
}); 

非常に非常に重要なコールは、カスタムイベントまたは他の側はうまく動作しません。

関連する問題