JavaScript/JQuery不能工作,直到页面重新加载
问题描述:
此代码在我的所有网页的标题上列出。当我点击我网站上的链接时,我无法使用页面上的按钮,直到我刷新。我怎样才能解决这个问题?JavaScript/JQuery不能工作,直到页面重新加载
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.faqElement').click(function() {
var faqElement = $(this);
var question = faqElement.find('.faqQuestion');
var answer = faqElement.find('.faqAnswer');
if (!answer.hasClass('activeFaqAnswer')) {
$('.faqElement').removeClass('flipButton');
faqElement.addClass('flipButton');
$('.activeFaqAnswer').css('max-height', '');
$('.faqAnswer').removeClass('activeFaqAnswer');
answer.css('max-height', 'none');
answer.css('max-height', answer.height());
answer.addClass('activeFaqAnswer');
}
});
});
</script>
答
这听起来像是你的自定义脚本和Squarespace's AJAX loading冲突:
偶尔,阿贾克斯可以嵌入自定义代码或锚 链接冲突。 Ajax也会干扰网站分析,仅在第一页上记录点击量。
因此,根据您的模板,您可能会发现禁用AJAX是一种简单的解决方案:
您可以在样式编辑器禁用阿贾克斯,但有一些例外:
- 阿贾克斯不能在Skye,Foundry或Tudor停用。
- 无法在Farro和Haute的博客着陆页上禁用Ajax。如果您在这些模板中取消选中启用Ajax加载,那么它们仍会使用Ajax加载博客页面。
要启用或禁用的Ajax:
- 在主菜单中,单击设计,然后单击样式编辑器。
- 向下滚动到网站:正在加载。
- 选中或取消选中启用Ajax加载。
如果你不想完全禁用AJAX,然后插入类似下面via Header code injection是经常去(在较新的模板,如卤水/赖特家族)的方式:
<script>
(function() {
// Establish a function that does something.
var myCustomFunction = function() {
// Do stuff here.
};
// Initialize the fn on site first-load.
document.addEventListener("DOMContentLoaded", myCustomFunction);
// Reinit. the fn on each new AJAX-loaded page.
window.addEventListener("mercury:load", myCustomFunction);
})();
</script>
如果这不起作用,那么你必须在body元素上设置一个突变观察者来观察属性的变化,特别是id
。在撰写本文时,York/Doncab系列模板需要采用这种方法。
注意,对于一些网页,如/cart/
页面,这种方法可能无法按预期执行,创造要么setInterval
,或前面提到的突变观测方法的额外需求。
你能分享一些更多的代码吗?你指的是哪些按钮?按钮上有哪些类?控制台中是否有任何javascript错误记录? – san
如果你把它放在你的代码的末尾(而不仅仅是头部的末尾)会发生什么? –