如何修复jquery中的故障
我用这个jquery代码在我的网站上切换页面内容。它会切换内容,但在切换到新页面之前,页面似乎会闪烁。我认为这可能与CSS在更改内容之前没有正确加载有关,因为如果我单击链接查看页面,我的jquery滚动条不会正确加载,但是如果我刷新页面一次,它似乎又正常工作了 在切换之前,代码是否有办法检查一切是否就绪,以避免出现故障闪烁 这里是切换页面内容的代码如何修复jquery中的故障,jquery,ajax,Jquery,Ajax,我用这个jquery代码在我的网站上切换页面内容。它会切换内容,但在切换到新页面之前,页面似乎会闪烁。我认为这可能与CSS在更改内容之前没有正确加载有关,因为如果我单击链接查看页面,我的jquery滚动条不会正确加载,但是如果我刷新页面一次,它似乎又正常工作了 在切换之前,代码是否有办法检查一切是否就绪,以避免出现故障闪烁 这里是切换页面内容的代码 $(document).ready(function() { var hash = window.location.hash.substr(1);
$(document).ready(function() {
var hash = window.location.hash.substr(1);
var href = $('#nav li a').each(function(){
var href = $(this).attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad = hash+'.html #content';
$('#content').load(toLoad)
}
});
$('#nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').fadeOut('fast',loadContent);
$('#load').remove();
$('#wrapper').append('<span id="load">LOADING...</span>');
$('#load').fadeIn('normal');
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
function loadContent() {
$('#content').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('#content').fadeIn('normal',hideLoader());
}
function hideLoader() {
$('#load').fadeOut('normal');
}
return false;
});
});
$(文档).ready(函数(){
var hash=window.location.hash.substr(1);
var href=$('#nav li a')。每个(函数(){
var href=$(this.attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad=hash+'.html#content';
$(“#内容”).load(toLoad)
}
});
$('#nav li a')。单击(函数(){
var toLoad=$(this.attr('href')+'#content';
$(“#content”).fadeOut('fast',loadContent);
$(“#加载”).remove();
$(“#包装器”).append('LOADING…');
$('加载').fadeIn('正常');
window.location.hash=$(this.attr('href').substr(0,$(this.attr('href').length-5);
函数loadContent(){
$('#content').load(toLoad',showNewContent())
}
函数showNewContent(){
$('content').fadeIn('normal',hideLoader());
}
函数hideLoader(){
$('加载').fadeOut('正常');
}
返回false;
});
});
我看到一个问题,这两行:
$('#content').load(toLoad,showNewContent())
$('#content').fadeIn('normal',hideLoader());
需要:
$('#content').load(toLoad,showNewContent);
$('#content').fadeIn('normal',hideLoader);
如果不传递任何数据,可以忽略它,完整参数需要引用命名函数或匿名函数。您得到的是执行未定义的showNewContent()
的结果
function showNewContent() {
$("body").scrollTop();
$('#content').fadeIn('normal',hideLoader);
}
我们可以有一个链接到“闪烁”的页面吗?为什么要设置
var href=$('#nav li a')。each()代码>?谢谢你,伙计,这似乎工作得很好!然而,我的滚动条似乎仍然出现故障,如果我从导航链接单击它的页面,我需要刷新浏览器,使其开始正常工作。这可能与内容转换器jquery或滚动条的jquery有关吗?我认为您遇到了这样一种情况:页面的高度变为小于旧内容,因此视口向上移动。我建议在showNewContent方法中添加scrollTo调用,以便在显示新内容时始终将浏览器滚动到顶部。像这样吗?函数showNewContent()$('#content').scrollTo.fadeIn('normal',hideLoader);