2012-06-01 91 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