2014-01-03 3 views
0

Вот часть div, которую я пытаюсь fadeOut.Fadeout jquery не работает. Удаляет успешно, но не исчезает

<% @unconfirmed_sub_posts.each do |sub| %> 
    <div class = "unconfirmed_post" id = "unconfirmed_sub_post_<%=sub.id%>"> 
    <table class = "table"> 
    <tr> 
     <td id = "tablenoborder"> 
     <%= link_to 'x', sub, method: :delete, class:"btn btn-danger btn-small", remote: true %> 
     </td> 

Обратите внимание на ID я положил на DIV и что я добавил удаленный: верен link_to, который посылает его к уничтожению действия контроллера.

В моем контроллере это действие уничтожения.

def destroy 
    @sub_opp.destroy 
    respond_to do |format| 
    format.html { redirect_to sub_opps_url } 
    format.js 
    end 
end 

Наконец, в моем destroy.js.erb файле:

$('#unconfirmed_sub_post_<%= @sub_opp.id %>').fadeOut(500); 

Элемент становится удален, но не гаснуть. Когда я обновляю страницу, div уходит. Javascript Консоль дает мне эту ошибку:

DELETE http://localhost:3000/sub_opps/14 500 (Internal Server Error) 

Вынесено HTML:

<div class = "unconfirmed_post" id = "unconfirmed_sub_post_14"> 
    <table class = "table"> 
    <tr> 
     <td id = "tablenoborder"> 
     <a class="btn btn-danger btn-small" data-method="delete" data-remote="true" href="/sub_opps/14" rel="nofollow">x</a> 
     </td> 
     <td id = "tablenoborder"> 
     <b>Basketball</b> at <b>depaul</b> on <b>Saturday, January 04, 2014</b> at <b> 4:00pm</b>. 
     </td> 
    </tr> 
    </table> 
    <!-- ANY RESPONSES TO PENDING SUB POSTS --> 
    <div class = "responses_to_posts"> 
    <h5 class = "nomargintop">Responses</h5> 
     <p class = "nonheadingtext">There are no responses yet.</p> 
    </div> 
</div> 

Любые идеи, почему? Thanks

+0

Можете ли вы поделиться своими визуализированными HTML и JS вместо серверного кода? – Blazemonger

+0

Обновлено. Спасибо – brad

+0

@brad вы решили проблему с моим ответом ниже? –

ответ

0

Проблема была в том, что мой файл javascript находился под неподходящей вложенной папкой. Я пытался удалить сообщение из панели управления пользователя и имел файл js в каталоге пользователя, когда он действительно должен был находиться в подпапке post.

извлеченный урок: убедитесь, что файл js находится под папкой вида объекта, который вы изменяете, а не там, где находится ссылка.

Благодарим вас за помощь.

0

Где находится ваш javascript, который вызывает разрушение? fadeOut выполняет обратный вызов. Попробуйте вызвать код, который вызывает уничтожение на сервере в вашем обратном вызове. Как это

$('#unconfirmed_sub_post_<%= @sub_opp.id %>').fadeOut(500, function(){ 
    //put your code that calls the server to destroy here 
}); 
+0

спасибо - я уверен, что это он. Я пытаюсь исследовать, что этот код будет для обратного вызова - довольно новый для ajax. спасибо – brad

0

На форме представления, вы хотите FADEOUT(), а затем разрешить представление формы в FADEOUT() обратного вызова.

+0

не могли бы вы прояснить, как это сделать? – brad

Смежные вопросы