2016-08-23 11 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') 

セッションを再ロードした後は、クリアされているようだ - それは、クリックするだけでトリガされるべきではないのですか?が、私は、以前使用して、選択した要素の作成「セレクタがnullまたは省略された場合には、選択した要素に到達すると、イベントは常に起動されます。」::私の心に来る

唯一のものは、ということです

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

答えて

1

これは、実行時にセッションの削除を評価しているためです。これはあなたが望むものではありません。クリックイベントで削除を実行したいとします。

これを行うには、コントローラのレベルでセッション削除を呼び出すclickでAjaxリクエストを実行できます。

関連する問題