2012-06-01 61 views
0

我有一个问题,自从我昨天开始寻找它之后,它给了我头痛。Javascripts未完全载入jQuery ajax内容

我有几个jQuery脚本,我的页面包括.load jQuery ajax(在页面底部)。

我使用的图像和位于JS头部的固定位置悬停效果/ tools.js

的问题是,我的随机浏览器将不加载的tools.js进阿贾克斯。所以有时你看不到加载的ajax内容中的图像悬停效果。当刷新页面时,它很好。

我的第一个赌注是我使用的脚本发生碰撞,或者内容或.js加载顺序存在问题。

JS:

$(document).ready(function() { 
    $('.cta-btn, .portf1, .portf2, .portf3, .portf4, .portf5, .btn-facebook, .btn-twitter, .btn-linkedin, .btn-studiofacebook, .btn-studiotwitter,.btn-studiolinkedin,.newsitem1, .newsitem2, .newsitem3').append('<span class="hover"></span>').each(function() { 
     var $span = $('> span.hover', this).css('opacity', 0); 
     $(this).hover(function() { 
      $span.stop().fadeTo(200, 1); 
     }, function() { 
    $span.stop().fadeTo(400, 0); 
     }); 
    }); 
}); 

$(function(){ 
    var stickyHeaderTop = $('#stickyheader').offset().top; 

    $(window).scroll(function(){ 
      if($(window).scrollTop() > stickyHeaderTop) { 
        $('#stickyheader').css({position: 'fixed', top: '0px'}); 
        $('#stickyalias').css('display', 'block'); 
      } else { 
        $('#stickyheader').css({position: 'static', top: '0px'}); 
        $('#stickyalias').css('display', 'none'); 
      } 
     }); 
}); 

HTML:

<!-- portfolio --> 
<div id="portfoliowrapper"> 
<div id="portfolioitems"></div> 
<script>$("#portfolioitems").load("werk.html #portfolio");</script> 
<div class="clear"></div> 
<a href="werk.html" class="cta-btn"><h2 class="btn">Werk</h2></a> 
</div> 

任何想法?提前致谢!

+0

不错的网站,它似乎一直工作得很好,在什么情况下它不会为你加载?你确定它不是一个代理问题吗? –

+0

@MatthewRiches如果你清除缓存,每次都会发生(使用Ctrl + F5进行刷新)。 –

+0

当我第一次访问该网站时,为什么要清除缓存? –

回答

0

你需要显示一些代码,你不能指望我们挖掘你的网站。

这很可能是因为您使用

$(function(){ 
    // code that depends on images being loaded here 
}); 

然而,这不会等待图像加载,它只有等到DOM是随时可以修改。等待图像的事件是窗口的加载事件。

$(window).load(function(){ 
    // here all images in the HTML are guaranteed to be loaded 
}); 

您的网页上运行的第二个时间,图像是在缓存中,他们已经加载时,DOM是准备好了,这是从你的$(document).ready()处理

+0

看起来像这样做的伎俩,任何方式来确定吗?谢谢胡安! – WIWIWWIISpitFire

+0

你是什么意思“肯定知道”?它解决了问题吗? –

+0

问题对我来说完全是随机的,即使在缓存刷新之后。无论如何,我现在多次尝试过,效果很棒!再次感谢胡安! – WIWIWWIISpitFire

0

问题就在这里:

$("#portfolio").offset() is null 
Line 33 

根据Firebug。看起来你正在试图在页面被完全渲染之前调用一个函数,这会导致一个错误,因为它不能计算偏移量,并且会打破函数的其余部分。

+0

谢谢马修,你知道如何解决这个问题吗?我已经尝试了我所知道的一切,所以我认为我需要一些更专业的帮助:P – WIWIWWIISpitFire