FadeOut тег div и его содержимое

0

Я хочу fadeOut div-tag и его вложенный контент, если я fadeOut ссылку "удалить".

Я написал следующий код:

контроллер:

  respond_to :html, :js
   def destroy_attachment
   @div_id = params[:id]

   respond_to do |format|
    respond_with @div_id
   end
  end

Посмотреть:

  <% for attachment in attachments %>
    <div class="attachment_<%= attachment.id %>">
            .....................
            ...some other content...
            .....................               
    <%= link_to "Destroy",  {controller: "topics" , action: "destroy_attachment"},
        :id => attachment.id,:remote => true, :confirm => 'Are you sure?', 
         :method => :post ,  class: "icon icon-del" %>
    </div>
  <% end %>

destroy_attachment.js.erb:

  $('.attachment_<%= @div_id %>').fadeOut("slow");

Что я делаю не так? Является ли selectioncall(*.attachment_<%= @div_id %>*) в .js файле неправильным или что-то еще?

  • 0
    $('.attachment <%= @div_id %>').fadeOut("slow"); ?
  • 0
    Нет, подчеркивание необходимо из-за названия класса div "attachment _ <% = attachment.id%>", я думаю.
Показать ещё 1 комментарий

1 ответ

0
Лучший ответ

Поэтому я нашел некоторые ошибки в моей реализации, и теперь он работает для меня, со следующим кодом:

контроллер:

def destroy_attachment
  @div_id =  params[:id]   
  respond_to do |format|
    format.html 
    format.js 
  end
end

Посмотреть:

<%= link_to "Destroy",  {controller: "topics" , action: "destroy_attachment",:id => attachment.id}, :remote => true, :confirm => 'Are you sure?', :method => :post ,  class: "icon icon-del" %>

Здесь я переместил часть ": id => attachment.id" в фигурные скобки, чтобы получить доступ с помощью метода params в контроллере

destroy_attachment.js.erb:

$("#attachment_<%=@div_id%>").fadeOut(150, function(){
  $(this).remove();
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню