此代码列在我所有网页的标题上。当我单击网站上的链接时,只有刷新后才能使用页面上的按钮。我该如何解决?
<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还会干扰网站分析,记录访问量仅首页。
因此,根据您的模板,您可能会发现禁用AJAX是一个简单的解决方案:
您可以在样式编辑器中禁用Ajax,但有一些例外:
- 不能在Skye,Foundry或Tudor中禁用Ajax。
- 无法在Farro和Haute的博客目标网页上禁用Ajax。如果在这些模板中取消选中“启用Ajax加载”,则它们仍将使用Ajax加载博客页面。
启用或禁用Ajax:
- 在主菜单中,单击设计,然后单击样式编辑器。
- 向下滚动到站点:正在加载。
- 选中或取消选中启用Ajax加载。
如果您不想完全禁用AJAX,那么请使用see "Option 2" in this answer编写代码的方式,以便它可以在初始页面加载和AJAX页面加载时工作。
似乎Ajax动态加载内容并破坏了绑定。
您可以在每个Ajax请求之后使用$.ajaxComplete()
来调用函数>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
function faqElementClick() {
$('.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');
}
});
};
$(document).ready(faqElementClick);
$(document).ajaxComplete(faqElementClick);
</script>