JQuery实现评论发布功能

直接上代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
        list-style-type: none;
      }
      body::-webkit-scrollbar {
        width: 0;
      }
      .main {
        width: 1000px;
        margin: 0 auto;
        border: 1px solid #000;
        padding: 20px;
        overflow: hidden;
      }
      #comment {
        width: 100%;
        height: 160px;
        resize: none;
      }
      .tip {
        font-size: 18px;
        font-weight: bold;
      }
      #send {
        padding: 5px 50px;
        float: right;
      }
      .mask {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        display: none;
      }
      #edit_comment {
        width: 100%;
        height: 100px;
        resize: none;
      }
      .group_wrap {
        width: 400px;
        height: 150px;
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
        margin: auto;
      }
      #update_btn {
        padding: 5px 20px;
      }
      .comment_box {
        width: 1000px;
        margin: 20px auto;
        padding: 20px;
        border: 1px solid #000;
      }
      .comment_box .msg {
        width: 100%;
        display: flex;
        justify-content: space-between;
        background: #ccc;
        margin: 20px auto;
        padding: 20px;
        box-sizing: border-box;
      }
    </style>
    <script src="jquery-3.6.1.js"></script>
  </head>
  <body>
    <div class="main">
      <h2>发部评论</h2>
      <textarea id="comment" maxlength="20"></textarea>
      <div>还可以输入 <span class="tip">20</span> 个字</div>
      <button id="send" disabled>发送</button>
      <div class="mask">
        <div class="group_wrap">
          <textarea id="edit_comment"></textarea>
          <button id="update_btn">保存修改</button>
        </div>
      </div>
    </div>
    <!-- 评论区 -->
    <div class="comment_box">
      <div class="msg">
        <p>1111</p>
        <div>
          <button class="edit_btn">编辑</button>
          <button class="del_btn">删除</button>
        </div>
      </div>
    </div>
    <script>
      // 编辑评论的input监听事件
      $("#comment").on("input", function () {
        // 控制输入监听
        $(".tip").text(20 - $(this).val().trim().length);

        // 判断输入长度,控制发送按钮是否被禁用
        if ($(this).val().trim().length > 0) {
          $("#send").removeAttr("disabled");
        } else {
          $("#send").attr("disabled", "true");
        }
      });

      // 发送按钮点击后,把输入的值追加进评论区的最后面
      $("#send").click(function () {
        // 把输入的文本发送出去
        $(".comment_box").prepend(`<div class="msg">
        <p>${$("#comment").val()}</p>
        <div>
          <button class="edit_btn">编辑</button>
          <button class="del_btn">删除</button>
        </div>
      </div>`);

        // 根据评论条数,控制评论区的显示与隐藏
        if ($(".comment_box").children().length == 0) {
          $(".comment_box").css("display", "none");
        } else {
          $(".comment_box").css("display", "block");
        }

        // 发送点击后清空输入
        $("#comment").val("");
        // 禁用发送
        $("#send").attr("disabled", "true");
        // 发送后提示字体重置
        $(".tip").text(20 - $("#comment").val().trim().length);

        // 删除评论
        $(".del_btn").click(function () {
          $(this).parents().remove(".msg");

          if ($(".comment_box").children().length == 0) {
            $(".comment_box").css("display", "none");
          } else {
            $(".comment_box").css("display", "block");
          }
        });

        // 编辑评论
        $(".edit_btn").click(function () {
          // 编辑点击后蒙版显示
          $(".mask").css("display", "block");

          // 设置蒙版中输入框的val为,触发者的文本
          $("#edit_comment").val($(this).parent().siblings("p").text());

          // 把当前编辑按钮的jQuery赋值给一个变量
          var currentElement = $(this).parent("div").siblings("p");

          console.log(currentElement);
          // 保存修改点击事件
          $("#update_btn").click(function () {
            // 设置修改的val为,蒙版输入框修改后的值
            currentElement.text($("#edit_comment").val());

            $(this).off("click");
            // 隐藏模板
            $(".mask").css("display", "none");
          });
        });
      });
    </script>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值