【问题标题】:Bootstrap collapsible not working after first timeBootstrap 可折叠在第一次后不起作用
【发布时间】:2017-07-27 18:55:32
【问题描述】:

我正在使用 PERSONA 作为 CMS 制作网站,并通过 Bootstrap 在页面上包含可折叠元素。我已经包含了 Bootstrap 版本 3.3.7 并且 PERSONA 带有 Jquery 的内部版本。你可以在这里查看网站: https://agdraft3.persona.co/

可折叠部分在第一次或刷新后正常工作,但是当我单击折叠元素内的链接然后返回时,它会冻结,直到我刷新。引发的唯一错误是与包含 vimeo 嵌入相关的错误,并且搜索未显示任何结果。

这是我的代码:

  
  $(document).ready(function(){
    	var acc = document.getElementsByClassName("accordion");
    var i;
    
    for (i = 0; i < acc.length; i++) {
      acc[i].onclick = function() {
        this.classList.toggle("active");
        var panel = this.nextElementSibling;
        if (panel.style.maxHeight){
          panel.style.maxHeight = null;
        } else {
          panel.style.maxHeight = panel.scrollHeight + "px";
        } 
      }
    }
    });
    button.accordion {
        background-color: rgba(255, 255, 255, 0);
        color: #444;
        cursor: pointer;
        width: 100%;
        border: none;
        text-align: left;
        outline: none;
        font-size: 15px;
        transition: 0.4s;
    }
    
    button.accordion.active, button.accordion:hover {
        background-color: #ffffff;
    }
    
    div.panel {
        padding: 0 18px;
        background-color: white;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.2s ease-out;
    }
HTML

    <button class="accordion active">
     <h2 class="collapse">Current</h2></button>
      <div class="panel">
       <div class="indent">
        <h2 class="current">
          <a href="Weird-Seeds" rel="history">Weird Seeds</a>
        </h2>
        <h2>(2017)</h2>
        <small>Weird Seeds is a community of artists &amp; scholars who tell stories about ecology, memory, and power.</small>=
     </div>
    </div>



 

【问题讨论】:

  • @ColeGwozdecki 请停止在不合适的地方编辑 sn-p 标记。如果没有各种额外的部分(例如 jQuery;或 Bootstrap CSS),sn-ps 充其量是无法使用的;在这种情况下,我们得到的只是$ is not defined 错误消息(实际网站中不存在)。片段用于 HTML/JS/CSS 示例,可以在 Stack Overflow 上运行演示问题

标签: javascript jquery html css bootstrap-4


【解决方案1】:

大, 所以为了把事情分解得更干净一点,你应该把你的 HTML/JS/CSS 分成所有单独的文件。然后只需通过链接标签将 CSS 注入您的 HTML,然后通过脚本标签注入您的 JS。这主要是语义,但也可能是您的错误的原因。看起来你确实在加载你的 JS,虽然在你的 HTML 的末尾这很好,所以你的 HTML 在 JS 加载之前已经被解析。

所以我认为你缺少的是

&lt;script src="../node_modules/jquery/dist/jquery.min.js"&gt;&lt;/script&gt;

我根本看不到 jQuery 的加载位置,看起来很困惑。如果它工作一次,那将是我的猜测。

【讨论】:

  • 网站也很酷,很有创意。
  • 所以我可以将 CSS 外部化,但 PERSONA 编辑器带有一个添加自定义 CSS 的地方。此外,它不允许任何外部版本的 jquery 并在我尝试将它们保存到自定义 html 时立即将它们取出
  • 您还在使用 PERSONA 编辑器吗?为什么不使用 VSCode,它好多了,而且仍然免费。
  • 我看到您可能将它们用作主机。必须有办法。但是,尽管我敢打赌 PERSONA jQuery 仍然会干扰您的 Bootstrap。您正在将 CDN 用于 Bootstrap,这在某种程度上造成了混乱。您已经弄清楚如何将 Bootstrap 注入角色
  • 这是给我工作的客户的,他们为这项服务付费,所以我一直在使用它。虽然有一秒钟系统出现故障,让我保存了一个外部 jquery。 collapisble 开始在链接之间工作,但在那之后整个编辑器都坏了,所以我不得不把它拿出来,现在它不允许我阅读它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 2021-11-04
  • 1970-01-01
  • 2019-10-26
相关资源
最近更新 更多