javascript - jQuery 从不同的 div 单击时 append 到 div

标签 javascript jquery append

我有一个 div 动态插入的在线用户:

<div id="users">
  <div class="privateMessage" data="John">John</div>
  <div class="privateMessage" data="Maria">Maria</div>
  <div class="privateMessage" data="Tony">Tony</div>
</div>

然后我有一个用于私有(private)消息的 div:

<div id="messageBox">
</div>

现在,当我单击用户时,我正在努力如何在 messageBox 内动态 append div

我需要的是下面这个:

<div id="messageBox">
   //when I click on John from users div this below should be appended
   <div class="private-chat" data-conversation-between="John"></div>
  //when I click on Maria from users div this below should be appended and John above
  //will be hidden
   <div class="private-chat" data-conversation-between="Maria"></div>
  //when I click on Tony from users div this below should be appended and John and Maria
  //will be hidden
   <div class="private-chat" data-conversation-between="Tony"></div>
</div>

无论我尝试什么,messageBox 内的 div 都会被 append 多次。

有人可以帮我用 jQuery 解决这个问题吗?

链接:fiddle

最佳答案

像这样的事情怎么样?

http://jsfiddle.net/thetimbanks/hfuurcL7/

click 事件被委托(delegate),因为用户可以动态添加到列表中。我还在 messageBox 中搜索该用户的现有 div,以免添加另一个。

在此处添加代码不仅仅是链接到 fiddle :

HTML

<div id="users">
  <div class="privateMessage" data-user="John">John</div>
  <div class="privateMessage" data-user="Maria">Maria</div>
  <div class="privateMessage" data-user="Tony">Tony</div>
</div>

<div id="messageBox">
</div>

js

$("#users").on("click", ".privateMessage", function() {

    var user = $(this),
        private_chat = $("#messageBox .private-chat[data-conversation-between='" + user.data("user") + "']");

    if (private_chat.length == 0) {
        private_chat = $('<div class="private-chat" data-conversation-between="' + user.data("user") + '">Chat with ' + user.data("user") + '</div>');
        $("#messageBox").append(private_chat);
    }

    private_chat.show().siblings().hide();
});

关于javascript - jQuery 从不同的 div 单击时 append 到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660891/

相关文章:

java - 如何在不覆盖现有数据的情况下使用 DOM append 现有 XML 文件?在 java

javascript - 让 javascript 计算字段时遇到问题

jquery - 如何解析 JSON 数据?

javascript - 如何在javascript中从一个函数访问变量到另一个函数

java - append 到 ObjectOutputStream

javascript - 我在日志文件中存储键值对象时遇到了一些麻烦

javascript - 网络应用程序 : modules speaking with each others

javascript - 如何以编程方式触发操作?

javascript - 检测并记录外部 JavaScript 或 CSS 资源无法加载的时间

javascript - Divs show() 在不同的时间,但相关的 CSS 动画都在相同的时间轴上运行。适用于 Chrome 和 IE,不适用于 FF