0

Rails ビューの 1 つでチャットに firebase を使用していますが、ページに表示するユーザー入力の値を適切に取得できません。これは、jqueryプラグインのページスライドを追加したときに発生しました。これら 2 つを連携させるには、実装で何かを見逃していたに違いありません。

これが私のレールビューのショーページです-

<script src="https://cdn.firebase.com/v0/firebase.js"></script>

<div id='chat-window'> 
  <%= render 'chat_window' %>
</div>
<a href="#chatty" class="second">Open Chat</a>

これがchat_windowの部分です-

<% if @list.chat_enabled %>
  <%= render 'chat' %>
<% else %>
  <% if @list.owner?(current_user) %>
    <%= link_to 'Get ' + @list.name + "Chat Ticket",  enable_chat_list_path(@list), :class => 'btn', :remote => true %>
  <% end %>
<% end %>

これがチャットの部分です-

<div id="chatty" >
  <ol id='messagesDiv' class="conversation">  
  </ol>
  <input id='messageInput' class="conversation" placeholder='Message...'>
  <a href="javascript:$.pageslide.close()"><span class="btn btn-info">Done Chatting</span></a>
</div>

<script>
  $(document).ready(function() {
      $(".second").pageslide({ direction: "left", modal: true });
  });
</script>

これは、firebase のドキュメントに基づいてチャットを有効にして書き込むための coffeescript ファイルです。

window.enableChat = (baseRef, projRef, userName, token) ->
  # Get a reference to the root of the chat data.
  messagesRef = new Firebase(baseRef)
  projectRef = ''
  messagesRef.auth token, (error, user) ->
    if error
      $("#messageInput").prop('disabled', true)
      $("#messagesDiv").html('disabled')
    else
      projectRef = messagesRef.child(projRef)

      # Add a callback that is triggered for each chat message.
      projectRef.on "child_added", (snapshot) ->
        message = snapshot.val()
        $("<li class='self'>").append($("<div class='message'>").append($("<p>").text(message.text))).prepend($("<span class='userVal'/>").text(message.name + ": ")).appendTo $("#messagesDiv")

      # When the user presses enter on the message input, write the message to firebase.
      $("#messageInput").keypress (e) ->
        if e.keyCode is 13
          text = $("#messageInput").val()
          projectRef.push 
            name: userName
            text: text
          $("#messageInput").val ""

詳細情報 ページスライドを有効にせずにチャットを使用すると、チャットは問題なく番組ページに書き込みます。 ここに画像の説明を入力

ページスライドを有効にしてテキスト ボックスを使用すると、メイン ショー ページのリストに新しい li が追加されますが、値はありません。そして、ページスライド内のリストに追加するものは何もありません。

ここに画像の説明を入力

このリンク<a href="#chatty" class="second123">Open Chat</a>は、jQuery ページスライド プラグインを開くために使用されます。

jQuery ページスライド プラグイン内で Enter キーを押すと、コンソールから何も表示されません。

この問題のトラブルシューティングを改善するにはどうすればよいですか?

4

1 に答える 1

0

Pageslide プラグインが作成した

<div id="pageslide"></div>

チャットデータをその中にラップしました。追加してこの問題を修正しました

#pageslide

コーヒーファイルの参照の前。そう$('#messagesDiv')

になる$('div#pageslide #messagesDiv')

これが将来誰かに役立つことを願っています。

于 2013-07-27T17:55:37.643 に答える