【问题标题】:How to prevent Bootstrap collapse from show based on condition? bs5如何防止 Bootstrap 根据条件显示崩溃? BS5
【发布时间】:2022-01-15 11:10:55
【问题描述】:

如果特定值为空,我需要阻止 collapsible 面板显示或打开。这似乎很容易,但我尝试了很多次,但都没有成功。

HTML

<a href="#" data-bs-toggle="collapse" data-bs-target="#infoBox" aria-expanded="false" aria-controls="infoBox"></i>
  
<div class="collapse m-3" id="infoBox">some ifos ...</div>

第一次尝试:

var someVal;
var infoBox = document.getElementById('infoBox')
infoBox.addEventListener('show.bs.collapse', function () {
    // console.log(e.target);
    if (someVal == null) return;
})

第二次尝试:

var someVal;
var infoBox = document.getElementById('infoBox');
var bsCollapse = new bootstrap.Collapse(infoBox, {
    show: false,
    dispose: true
})
infoBox.addEventListener('show.bs.collapse', function (e) {
    // console.log(e.target);
    if (someVal == null) return bsCollapse;
})

它们都不起作用

【问题讨论】:

    标签: javascript twitter-bootstrap bootstrap-5 collapsable


    【解决方案1】:

    你必须使用e.preventDefault()函数来防止默认。

    var toggle = false;
    
    $("#wrapper").on('show.bs.collapse', function (e) {
        if (!toggle) {
          e.preventDefault();
        }
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    
    
    <div id="wrapper">
      <a href="#" data-bs-toggle="collapse" data-bs-target="#infoBox" aria-expanded="false" aria-controls="infoBox" id="myCollapsible">press me</a>
    
      <div class="collapse m-3" id="infoBox">some ifos ...</div>
    </div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 2022-01-19
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多