2016-08-23 37 views
0

我想从点击会话中删除一些值,但它似乎是它被触发而不点击(重新加载)。加载时触发Rails JS委托事件?

这是我的代码(咖啡+ ERB):

$(document).on "click", ".top-bar[data-chatbox-id='<%=chat.id%>'] .fa-times", (e) -> 
    $box_position = $("div.chat_box[data-chatbox-id='<%=chat.id%>']").position().left 
    $("div.chat_box[data-chatbox-id='<%=chat.id%>']").remove() 

    ## ################### LINE BELOW IS THE ONE CAUSING PROBLEMS ####### 
    <% session[:chatrooms].delete(chat.id) %> 

    chats = $('.chat_box') 
    chats.each (index, element) => 
     if $(element).position().left < $box_position 
     $(element).css('right', '-=' + 310 + 'px') 

重装会议后似乎得到清除 - 不应该只在点击触发?

这使我想到的唯一的事情就是:“如果选择为空或省略,当它到达选定的元素总是触发事件。”,但我创建较早使用选定的元素:

$(document.body).append("<%= j render '/chatrooms/chatroom' %>") 

回答

1

那是因为你正在评估在运行时会删除这不是你想做的。你想在点击事件上执行删除。

为了做到这一点,你可以对点击一个Ajax请求,其中要求在控制器级别会议的缺失。