我很难找到解决这个问题的方法。tl;博士我希望能够将 li 的 css 类设置为发布聊天的 current_user 的名称。然后基于该类,我将应用不同的样式。
这是一个聊天窗口,我希望所有当前用户的消息都显示在一侧,我希望所有其他消息以不同的颜色显示在另一侧,等等。
我有一个file.js.coffee
基本上读入一些用户输入并将其附加到有序列表并在此过程中添加一些元素和类
projectRef.on "child_added", (snapshot) ->
message = snapshot.val()
$("<li class='self'>").append($("<div class='message'>").append($("<p>").text(message.text))).prepend($("<b/>").text(message.name + ": ")).appendTo $("#messagesDiv")
$("#messagesDiv")[0].scrollTop = $("#messagesDiv")[0].scrollHeight
$("#messageInput").keypress (e) ->
if e.keyCode is 13
text = $("#messageInput").val()
projectRef.push
name: userName
text: text
$("#messageInput").val ""
以上将在浏览器中产生类似的东西
<li class="self">
<b>User : </b>
<div class="message">
<p>My chatt message from file.js.coffee!!</p>
</div>
</li>
li 中的“self”类是我一直试图根据 current_user 动态设置的。所以我有 2 个问题 - 1. 我试图找出谁发布了 li 和 2. 我试图根据聊天/发布它的用户动态设置该 li 的类。
我的想法是在 file.js.coffee 中使用 JQuery 来获取该 li 并将其添加<%= current_user.name %>
为一个类,然后我可以有一个 file.js.erb 我会在其中执行类似的操作
<% unless $('li').hasClass('<%= current_user.name %>'); %>
<%= $('li').toggleClass('others') %>
<% end %>
这样,它会检查目标的类li
是否来自当前用户,如果不将其切换到其他用户,是否将 css 类保持为 self。然后我可以适当地设置类的样式(左、右background-color:blue;
等)。
鉴于我要完成的工作,是否有更正确的方法来解决这个问题?我认同..