RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1336897
Accepted
kiskiskit
kiskiskit
Asked:2022-03-10 21:06:26 +0000 UTC2022-03-10 21:06:26 +0000 UTC 2022-03-10 21:06:26 +0000 UTC

为什么按钮单击事件不起作用?

  • 772

通过单击按钮,应该会出现一个动画,然后应该会出现一个带有消息的块。目前有一个问题是按钮事件不起作用,整个动画和所有带有消息的块都被加载。请告诉我如何解决这个问题

var chatMessages = [{
  name: "ms1",
  msg: "1 этап <div class='box'><button class='btn'>next</button></div>",
  delay: 600,
  align: "left",
  
},
{
  name: "ms2",
  msg: "успешно. далее!",
  delay: 600,
  align: "right",

},
{
  name: "ms3",
  msg: "Второй этап <div class='box'><button class='btn'>next</button></div>",
  delay: 600,
  align: "left",
 
},
{
  name: "ms4",
  msg: "Успешно",
  delay: 600,
  align: "right",
 
},
{
  name: "ms5",
  msg: "Третий этап <div class='box'><button class='btn'>next</button></div>",
  delay: 600,
  align: "left",
  
},
{
  name: "ms6",
  msg: "Конец.",
  delay: 600,
  align: "right",
  
}
                   ];
var chatDelay = 0;

$('.btn').click(function(){
  $(this).parent('.box').toggleClass('active');
});
function onRowAdded() {
  $('.chat-container').animate({
    scrollTop: $('.chat-container').prop('scrollHeight')
  });
};
$.each(chatMessages, function(index, obj) {
  chatDelay = chatDelay + 1;
  chatDelay2 = chatDelay + obj.delay;
  chatDelay3 = chatDelay2 + 10;
  scrollDelay = chatDelay;
  chatTimeString = " ";
  msgname = "." + obj.name;
  msginner = ".messageinner-" + obj.name;
  spinner = ".sp-" + obj.name;
  if (obj.showTime == true) {
    chatTimeString = "<span class='message-time'>" + obj.time + "</span>";
  }
  $(".chat-message-list").append("<li class='message-" + obj.align + " " + obj.name + "' hidden><div class='sp-" + obj.name + "'><span class='spinme-" + obj.align + "'><div class='spinner'><div class='bounce1'></div><div class='bounce2'></div><div class='bounce3'></div></div></span></div><div class='messageinner-" + obj.name + "' hidden><span class='message-text'>" + obj.msg + "</span>" + chatTimeString + "</div></li>");
  $(msgname).delay(chatDelay).fadeIn();
  $(spinner).delay(chatDelay2).hide(1);
  $(msginner).delay(chatDelay3).fadeIn();
  setTimeout(onRowAdded, chatDelay);
  setTimeout(onRowAdded, chatDelay3);
  chatDelay = chatDelay3;
});
#wrapper {
  width: 600px;
  margin: 50px auto;
}

body {
  font-family: Arial;
  background: #fff;
}

.chat ul {
  margin: 0px;
  padding: 0px;
  list-style: none;
}

.message-left .message-time {
  display: block;
  font-size: 12px;
  text-align: left;
  padding-left: 30px;
  padding-top: 4px;
  color: #ccc;
  font-family: Courier;
}

.message-right .message-time {
  display: block;
  font-size: 12px;
  text-align: right;
  padding-right: 20px;
  padding-top: 4px;
  color: #ccc;
  font-family: Courier;
}

.message-left {
  text-align: left;
  margin-bottom: 16px;
}

.message-left .message-text {
  max-width: 80%;
  display: inline-block;
  background: #fff;
  padding: 15px;
  font-size: 14px;
  color: #999;
  border-radius: 30px;
  font-weight: 100;
  line-height: 1.5em;
}

.message-right {
  text-align: right;
  margin-bottom: 16px;
}

.message-right .message-text {
  line-height: 1.5em;
  display: inline-block;
  background: #5ca6fa;
  padding: 15px;
  font-size: 14px;
  color: #fff;
  border-radius: 30px;
  line-height: 1.5em;
  font-weight: 100;
  text-align: left;
}

.chat {
  border-radius: 30px;
  padding: 20px;
  background: #f5f7fa;
}

.chat-container {
  height: 400px;
  overflow-y: scroll;
  padding-right: 16px;
}

.spinme-right {
  display: inline-block;
  padding: 15px 20px;
  font-size: 14px;
  border-radius: 30px;
  line-height: 1.25em;
  font-weight: 100;
  opacity: 0.2;
}

.spinme-left {
  display: inline-block;
  padding: 15px 20px;
  font-size: 14px;
  color: #ccc;
  border-radius: 30px;
  line-height: 1.25em;
  font-weight: 100;
  opacity: 0.2;
}

.spinner {
  margin: 0;
  width: 30px;
  text-align: center;
}

.spinner > div {
  width: 10px;
  height: 10px;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  background: rgba(0,0,0,1);
}
 
.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}

@-webkit-keyframes sk-bouncedelay {
  0%,
  80%,
  100% {
    -webkit-transform: scale(0)
  }
  40% {
    -webkit-transform: scale(1.0)
  }
}

@keyframes sk-bouncedelay {
  0%,
  80%,
  100% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  40% {
    -webkit-transform: scale(1.0);
    transform: scale(1.0);
  }
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<div id="wrapper">
  <div class="chat">
    <div class="chat-container">
      <div class="chat-listcontainer">

        <ul class="chat-message-list">
        </ul>

      </div>
    </div>
  </div>
</div>

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Алексей Шиманский
    2022-03-10T21:12:09Z2022-03-10T21:12:09Z

    动态添加 html 元素时,要习惯使用委托。否则,该事件根本无法应用。因为事件试图在元素被添加到 DOM 树之前触发。

    var chatMessages = [{
      name: "ms1",
      msg: "1 этап <div class='box'><button class='btn'>next</button></div>",
      delay: 600,
      align: "left",
      
    },
    {
      name: "ms2",
      msg: "успешно. далее!",
      delay: 600,
      align: "right",
    
    },
    {
      name: "ms3",
      msg: "Второй этап <div class='box'><button class='btn'>next</button></div>",
      delay: 600,
      align: "left",
     
    },
    {
      name: "ms4",
      msg: "Успешно",
      delay: 600,
      align: "right",
     
    },
    {
      name: "ms5",
      msg: "Третий этап <div class='box'><button class='btn'>next</button></div>",
      delay: 600,
      align: "left",
      
    },
    {
      name: "ms6",
      msg: "Конец.",
      delay: 600,
      align: "right",
      
    }
                       ];
    var chatDelay = 0;
    
    $(document).on('click', '.btn', function(){
      console.log(111);
      $(this).parent('.box').toggleClass('active');
    });
    function onRowAdded() {
      $('.chat-container').animate({
        scrollTop: $('.chat-container').prop('scrollHeight')
      });
    };
    $.each(chatMessages, function(index, obj) {
      chatDelay = chatDelay + 1;
      chatDelay2 = chatDelay + obj.delay;
      chatDelay3 = chatDelay2 + 10;
      scrollDelay = chatDelay;
      chatTimeString = " ";
      msgname = "." + obj.name;
      msginner = ".messageinner-" + obj.name;
      spinner = ".sp-" + obj.name;
      if (obj.showTime == true) {
        chatTimeString = "<span class='message-time'>" + obj.time + "</span>";
      }
      $(".chat-message-list").append("<li class='message-" + obj.align + " " + obj.name + "' hidden><div class='sp-" + obj.name + "'><span class='spinme-" + obj.align + "'><div class='spinner'><div class='bounce1'></div><div class='bounce2'></div><div class='bounce3'></div></div></span></div><div class='messageinner-" + obj.name + "' hidden><span class='message-text'>" + obj.msg + "</span>" + chatTimeString + "</div></li>");
      $(msgname).delay(chatDelay).fadeIn();
      $(spinner).delay(chatDelay2).hide(1);
      $(msginner).delay(chatDelay3).fadeIn();
      setTimeout(onRowAdded, chatDelay);
      setTimeout(onRowAdded, chatDelay3);
      chatDelay = chatDelay3;
    });
    #wrapper {
      width: 600px;
      margin: 50px auto;
    }
    
    body {
      font-family: Arial;
      background: #fff;
    }
    
    .chat ul {
      margin: 0px;
      padding: 0px;
      list-style: none;
    }
    
    .message-left .message-time {
      display: block;
      font-size: 12px;
      text-align: left;
      padding-left: 30px;
      padding-top: 4px;
      color: #ccc;
      font-family: Courier;
    }
    
    .message-right .message-time {
      display: block;
      font-size: 12px;
      text-align: right;
      padding-right: 20px;
      padding-top: 4px;
      color: #ccc;
      font-family: Courier;
    }
    
    .message-left {
      text-align: left;
      margin-bottom: 16px;
    }
    
    .message-left .message-text {
      max-width: 80%;
      display: inline-block;
      background: #fff;
      padding: 15px;
      font-size: 14px;
      color: #999;
      border-radius: 30px;
      font-weight: 100;
      line-height: 1.5em;
    }
    
    .message-right {
      text-align: right;
      margin-bottom: 16px;
    }
    
    .message-right .message-text {
      line-height: 1.5em;
      display: inline-block;
      background: #5ca6fa;
      padding: 15px;
      font-size: 14px;
      color: #fff;
      border-radius: 30px;
      line-height: 1.5em;
      font-weight: 100;
      text-align: left;
    }
    
    .chat {
      border-radius: 30px;
      padding: 20px;
      background: #f5f7fa;
    }
    
    .chat-container {
      height: 400px;
      overflow-y: scroll;
      padding-right: 16px;
    }
    
    .spinme-right {
      display: inline-block;
      padding: 15px 20px;
      font-size: 14px;
      border-radius: 30px;
      line-height: 1.25em;
      font-weight: 100;
      opacity: 0.2;
    }
    
    .spinme-left {
      display: inline-block;
      padding: 15px 20px;
      font-size: 14px;
      color: #ccc;
      border-radius: 30px;
      line-height: 1.25em;
      font-weight: 100;
      opacity: 0.2;
    }
    
    .spinner {
      margin: 0;
      width: 30px;
      text-align: center;
    }
    
    .spinner > div {
      width: 10px;
      height: 10px;
      border-radius: 100%;
      display: inline-block;
      -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
      animation: sk-bouncedelay 1.4s infinite ease-in-out both;
      background: rgba(0,0,0,1);
    }
     
    .spinner .bounce1 {
      -webkit-animation-delay: -0.32s;
      animation-delay: -0.32s;
    }
    
    .spinner .bounce2 {
      -webkit-animation-delay: -0.16s;
      animation-delay: -0.16s;
    }
    
    @-webkit-keyframes sk-bouncedelay {
      0%,
      80%,
      100% {
        -webkit-transform: scale(0)
      }
      40% {
        -webkit-transform: scale(1.0)
      }
    }
    
    @keyframes sk-bouncedelay {
      0%,
      80%,
      100% {
        -webkit-transform: scale(0);
        transform: scale(0);
      }
      40% {
        -webkit-transform: scale(1.0);
        transform: scale(1.0);
      }
    }
    <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
    <div id="wrapper">
      <div class="chat">
        <div class="chat-container">
          <div class="chat-listcontainer">
    
            <ul class="chat-message-list">
            </ul>
    
          </div>
        </div>
      </div>
    </div>

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5