如何使用jquery仅删除#Chat中的选定消息?

时间:2016-03-03 06:40:27

标签: javascript jquery css

我正在尝试这个聊天。到目前为止一切正常但是当我尝试删除我使用“是”按钮单击的消息时,如果还有更多消息,则会删除所有消息。

此外,我希望点击一个获得背景:#ccc,我尝试使用.css()但它会为每个被点击的消息着色并保持这样。 例如,如果我点击消息1 将其设为背景:#ccc,如果我点击消息2 ,请将其设为背景:#ccc并删除背景:#ccc from 消息1

任何人都可以向我解释如何解决它吗?谢谢。

这是我的代码

         $("#chat").on("click", ".mesaj", function(){
          console.log("click works on class");
          $("#yes").click(function(){
          $(".mesaj").remove();
          $("#delPop").hide();

        });

        $("#delPop").show();
        $("#no").on("click", function(){
        $("#delPop").hide();
    });

});

我的聊天:https://jsfiddle.net/azfwuzad/9/

4 个答案:

答案 0 :(得分:3)

你可以这样做

$("#chat").on("click", ".mesaj", function(){
var element = $(this);
console.log("Merge click clasa");
$("#yes").click(function(){
     $(element).remove();
     $("#delPop").hide();

    });

    $("#delPop").show();
    $("#no").on("click", function(){
        $("#delPop").hide();
    });

});

答案 1 :(得分:1)

检查此更新的fiddle

您基本上需要使用“已选择”类标记所选消息

$(this).addClass("selected").siblings().removeClass("selected");

然后只删除该类

    $("#yes").one("click", function(){
         $(".mesaj.selected").remove();
         $("#delPop").hide();   
    });

    $("#no").one("click", function(){
        $("#delPop").hide();
    });

Alternative way这样做可能只是记住你点击了哪个消息

  var self = $(this);

    $("#yes").one("click", function(){
         $(".mesaj.selected").remove();
         $("#delPop").hide();   
    });

答案 2 :(得分:1)

在.mesaj点击功能中设置var msg = $(this),并在#yes点击功能中引用它:

jsFiddle

答案 3 :(得分:0)

试试这个

$("#chat").on("click", ".mesaj", function(){
var that = this
console.log("Merge click clasa");
$("#yes").click(function(){
     $(that).remove();
     $("#delPop").hide();

    });

希望有帮助:)