gpt4 book ai didi

javascript - jQuery 仅在本地 Rails 项目上的浏览器刷新后才起作用

转载 作者:行者123 更新时间:2023-11-28 17:49:04 26 4
gpt4 key购买 nike

我有这两个 jQuery 函数,如果我刷新浏览器窗口,它们可以正常工作...但是如果我只是单击该站点,下面的 jQuery 就不会执行。我没有收到任何控制台错误。我尝试将其包装在 $(window).on('load', function() { ... }$(function(){ ... } 中>.我也尝试过像这样单独包装每个: $( ".accordion").on('load', function() { ... }.

任何想法都将受到赞赏,因为这是我在 Rails 生态系统中的第一个项目。

// grow hover for landing page 
$(window).bind("resize",function(){
console.log($(this).width());
if($(this).width() <1024){
$('div.causeBox').addClass('grow')
}
else{
$('div.causeBox').removeClass('grow')
}
})

// accordion animation
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";
}
}
}

这是我的 jQuery 的问题吗?我的本地环境是否存在我以前从未遇到过的奇怪情况?感谢您的任何建议。

最佳答案

您的项目可能正在使用 Turbolinks ,您可以通过查找 turbolinks 来检查这一点在 Gemfile 中或检查 app/assets/javascripts/application.js 中的 //= require turbolinks 。 Turbolinks 的作用是:

When you follow a link, Turbolinks automatically fetches the page, swaps in its <body>, and merges its <head>, all without incurring the cost of a full page load.

正因为如此,您实际上只加载页面一次,然后 Turbolinks 接管并从那时起伪加载页面。在 Running JavaScript When a Page Loads他们的自述文件部分:

You may be used to installing JavaScript behavior in response to the window.onload, DOMContentLoaded, or jQuery ready events. With Turbolinks, these events will fire only in response to the initial page load—not after any subsequent page changes.

In many cases, you can simply adjust your code to listen for the turbolinks:load event, which fires once on the initial page load and again after every Turbolinks visit.

document.addEventListener("turbolinks:load", function() {
// ...
})

您可以在README中阅读更多相关信息。

关于javascript - jQuery 仅在本地 Rails 项目上的浏览器刷新后才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45993118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com