2012-01-03 52 views
1

我瘋了,在同一頁多種形式。不引人注目的JavaScript軌道3.1多種形式,相同的頁面

每當工作正常時一個獨特的形式,你可以識別唯一的id或這種形式或列的唯一類...等。

但我的大問題回來,當我有多個表格在同一頁。我要渲染的部分CREATE_INDEX當我創建一個新的評論,在create.js.erb我:

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

的問題是,如果有上述形式多列與類.comments_column評論其在同一類的每一列中呈現的評論。

在jQuery的一個例子是這樣的:

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

爲Rails 3.1不工作的這個例子。如果我把這個javascript放在create.js.erb。第一次不顯示創建的評論。

如果我把只在create.js.erb:

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

呈現的部分中包含該類.comments_column每一列。

我的問題是如何對rails 3的表單或按鈕進行渲染只是在本專欄中的部分?

回答

0

問題其固定!對於每一個世界有這個問題:

每個軌道UJS AJAX調用提供了可連接六個自定義事件:

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) 

在我的情況,我會添加事件偵聽器的AJAX:成功我的提交按鈕上的事件:

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

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

其非常非常重要的調用自定義事件或其他方面不工作正常。