基础jQuery手风琴渲染在页面加载时打开

时间:2016-10-03 22:00:43

标签: javascript jquery jquery-ui ruby-on-rails-4 zurb-foundation

我在我的网页上使用了带有Foundation的jQuery手风琴。

当我第一次访问该页面时,手风琴呈现出应该关闭的状态。

但是,如果我打开手风琴,离开页面,然后返回页面,页面加载有一瞬间,你可以看到手风琴打开,然后jQuery启动,你可以看到它关。

这非常令人沮丧,我无法找到任何好的理由或为什么会发生这种情况的例子。

我正在使用Rails 4,我不知道这是关于turbolinks,我的jQuery手风琴函数,还是渲染缓存网页的问题。

我用于手风琴的jQuery函数是:

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
    acc[i].onclick = function(){
        this.classList.toggle("active");
        this.nextElementSibling.classList.toggle("show");
  }
}

任何人都可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这可能是由于页面缓存或设置为错误默认值的类。

确保在css / html文件中元素不活动,这样当页面加载时它们就会被关闭。

如果是缓存问题,您可以编写一个要执行的函数,如:

window.onbeforeunload = function() {
    var i = acc.length;
    while (i--) acc[i].classList.toggle("closed") // I don't know the class for closed, I'm guessing.
}