Добавьте $(this).find в prependTo

У меня есть эта фраза:

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

Мой HTML:

<div class="comments_column">
<div class="comment">coment 1</div>
<div class="comment">coment 2</div>
<div class="comment">coment 3</div>
<div class="comment">coment 4</div>
<div class="comment">coment 5</div>
.
.
.
<div class="comment_box">

<form method="post" action="the_action">
<textarea></textarea>
<input type="submit" value="Comment" class="input_comment">
</form>

</div>

</div>

<div class="comments_column"></div>
<div class="comments_column"></div>
<div class="comments_column"></div>
<div class="comments_column"></div>
<div class="comments_column"></div>
.
.
.

Я хочу добавить $(this).find или это для этого предложения, ударив только по этому классу .comments_column, потому что у меня много .comments_column в одном документе.

Как это работает?

Отредактировано. Добавьте html.


person hyperrjas    schedule 31.12.2011    source источник
comment
Вы хотите добавить его только к первому классу .comments_column? Или у вас есть контекст, например this?   -  person Ry-♦    schedule 01.01.2012
comment
@minitech Я добавил html. Я хочу, чтобы это работало только для ‹div class=comments_column›, содержащего форму.   -  person hyperrjas    schedule 01.01.2012
comment
Вы внутри submit события <form>?   -  person Ry-♦    schedule 01.01.2012
comment
да, кнопка отправки находится внутри тега ‹form›   -  person hyperrjas    schedule 01.01.2012


Ответы (1)


Вместо:

$(".comments-column")

выберите ближайший соответствующий родитель:

$(this).parents(".comments-column").eq(0)

(изменить) Увидев ваш jsFiddle, это то, что вам нужно изменить.< /а>

person Ry-♦    schedule 31.12.2011
comment
Спасибо, но как работает в этом предложении? $("<%= escape_javascript(render(:partial => 'create_index'))%>").hide().prependTo(".comments_column").fadeIn(1500); - person hyperrjas; 01.01.2012
comment
@гиперржас: $("<%= escape_javascript(render(:partial => 'create_index'))%>").hide().prependTo($(this).parents(".comments-column").eq(0)).fadeIn(1500); - person Ry-♦; 01.01.2012
comment
Спасибо @minitech за то, что не работаете на меня :(. - person hyperrjas; 01.01.2012
comment
@hyperrjas: Можете ли вы опубликовать jsFiddle, чтобы я мог протестировать? - person Ry-♦; 01.01.2012
comment
привет @minitech. Вы можете увидеть jsfiddle.net/aC92Q/2. Я хочу, чтобы эта кнопка «Отправить» отображала частичные рельсы. Например, частичный контент содержит ‹div class=comment›другой комментарий more‹/div›. Теперь, если я нажму кнопку отправки, эта частичная часть будет отображаться в каждом comments_column. - person hyperrjas; 02.01.2012
comment
@hyperrjas: Хорошо, многое нужно изменить. Вот что вам нужно. - person Ry-♦; 03.01.2012
comment
Спасибо минитех. Эффект js работает нормально, но не сохраняет результат в базе данных. Проблема в том, что рельсы отправляют действие отправки до того, как контроллер. В create.js.erb больше не работает другая форма. Я поставил <%= escape_javascript(render 'create_index')%> под // Отправьте сюда запрос Ajax. Я тоже проверил, чтобы поместить <%= escape_javascript(render 'create_index')%> в var $newComment, но не работает. Проблема в том, что действие отправки создается в контроллере, и когда мы приходим к create.js.erb, мы не можем снова дублировать действие отправки. Может работает без submit action? Спасибо - person hyperrjas; 03.01.2012
comment
Я хочу отобразить этот фрагмент для комментария div: <div class="comment"> <div class="comment_avatar"> <%if current_user.avatar.present?%> <%= image_tag(current_user.avatar.url(:thumb)) %> <% else %> <%= image_tag(current_user.avatar.default_avatar_url_thumb)%> <% end %> </div> <p class="user_comment_show"><%= link_to @comment.user.username, boards_users_board_path(@comment.user) %> <%= sanitize(@comment.content) %></p> </div> - person hyperrjas; 03.01.2012
comment
У меня есть текстовая область и форма с уникальным идентификатором. Можно ли получить идентификатор из text_area или forma и передать его выражению $(this).parents(".comments-column").eq(0) без кнопки отправки? Идентификатор text_area и его форма в следующем формате: id=text_4efcda9e1d41c82486000077 и форма id=4efcda9e1d41c82486000077. - person hyperrjas; 03.01.2012
comment
@hyperrjas: Нет. Используйте Ajax. - person Ry-♦; 03.01.2012
comment
Благодарю за ваш ответ. Как я могу использовать ajax для получения частичного $("<%= escape_javascript(render(:partial => 'create_index'))%>") внутри последнего кода? Спасибо - person hyperrjas; 03.01.2012
comment
@hyperrjas: я не знаю Ruby on Rails, но просто создайте объект XMLHttpRequest (с запасным вариантом ActiveX, описанным на учебных сайтах), инициализируйте его (опять же, см. учебные пособия) и отправьте его на контроллер RoR, содержащий только этот сценарий. - person Ry-♦; 03.01.2012
comment
проблема исправлена ​​stackoverflow.com/questions/8717405/ - person hyperrjas; 04.01.2012