0

投稿を作成するためにAJAXでRoRを使用しています。したがって、以前のIDで「回答」を追加する機能が必要です。
送信ボタンが呼び出されるたびに、次のコードが呼び出されます

$("<%= selector %>").append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");

これはどこに
selector見える#answer-12
newanswerでしょう#answer-13

初回は提案どおりに機能しますが、2回目に[送信]をクリックすると、すでに追加されている#answer-13divを使用して新しく追加する必要が#answer-14あり、機能しません。ドキュメントが最初に追加された要素について知らないことは理解していますが、この問題を解決する方法がわかりません。助けてくれてありがとう。

更新リンクを編集および破棄し て新規にレンダリングするanswerため、回避できる追加機能だけでなく、追加された要素と完全に対話する機能も必要です。

4

3 に答える 3

2

現在選択されている要素の末尾に追加するように、すべての回答のラッパー div を作成することもできます。

だから持っている$('#answer-div').append(etc.....

それ以外の$('#specific-answer').append(etc...

于 2012-05-16T13:40:21.067 に答える
1

すべての回答にクラスを与え、最後のものを選択します。

$('.theClass:last').append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");

またはこれを使用します:

$('[id^="answer-"]:last').append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");

jQuery('[attribute^="value"]')
attribute - 属性名。
value- 属性値。引用符で囲まれていない単一の単語または引用符で囲まれた文字列のいずれかです。

于 2012-05-16T13:09:07.680 に答える
0

最後に使用した ID を DOM のどこかに配置することを提案できます。

var appendTo = $('#append-to');    
var appendToId = appendTo.attr('latest');
$( '#' + appendToId ).append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");

appendTo.attr( 'latest', '<%= newanswer %>' );
于 2012-05-18T16:45:40.490 に答える