javascript - 使用切换按钮删除容器

标签 javascript jquery html

我想使用切换按钮显示/隐藏容器(请参见下面的代码)。它在第一次点击时成功添加了容器,但在第二次点击后没有正确删除。有谁知道问题出在哪里?

let toggle_button = $('#toggle-btn');
let button_container = $('#button-container');

toggle_button.on('click', function (event) {

  event.stopPropagation();
  
  let container = get_container();
  toggle_button.toggleClass('toggled');
  
  if (toggle_button.hasClass('toggled')) {
    button_container.after(container);
  } else {
    container.remove();
  }
  
});


function get_container ()
{
  return $('<div/>').css({ 
    width: '100%', height: 'auto', 
    background: 'yellow' 
  }).html('container');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="button-container" style="width:100%;height:auto;background:#000;">
  <button id="toggle-btn">Toggle Button</button>
</div>

最佳答案

您可以将 remove 与 DOM 元素引用一起使用

let toggle_button = $('#toggle-btn')
toggle_button.on('click', function (event) {

  event.stopPropagation();
   
  // Get container
  let container = get_container();
  
  // Toggle class
  toggle_button.toggleClass('toggled');
  
  if (toggle_button.hasClass('toggled')) {
    toggle_button.after(container);
  } else {
    var el = toggle_button.parent().find('div');
    el.remove();
  }
  
});


function get_container ()
{
  return $('<div/>').css({ 
    width: '100%', height: 'auto', 
    background: 'yellow' 
  }).html('container');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div style="width:100%;height:auto;background:#000;">
  <button id="toggle-btn">Toggle Button</button>
</div>

关于javascript - 使用切换按钮删除容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58979576/

相关文章:

javascript - 从 JavaScript 中的变量创建可下载链接

javascript - 如何在 Jquery Ajax 中查找成功数据的长度?

javascript - 使用 Owl Carousel 2 缩放自定义动画

jquery - 更改嵌套行类 onclick

javascript - 淡入输入图像,淡出输出图像

javascript - 移相器 : Instantiate class by string reference

javascript - Angular 2 中特定元素的击键(键绑定(bind))

html - 如何仅覆盖页面上一个区域的 CSS Box Sizing?

html - 导航栏内的 Bootstrap 下拉菜单未正确显示

javascript - 如果条件不满足,什么时候应该满足