2014-02-25 110 views
0

好吧,我有一個Jquery腳本,它的功能是確定窗口的寬度,onload。如果寬度大於642px,它將調用.load()加載圖像滑塊。這樣做的原因是移動設備既不會被提供給滑塊所需的圖像或js。防止內聯腳本加載,直到Jquery加載

當jquery加載到頭部時,這工作正常。在移動到頁腳它的突破。該代碼包含在index.php中。這可能是造成它的原因嗎?我曾經想過一旦php構建頁面jquery解析了內容?

看起來代碼在加載jquery之前被解析。任何人都可以提出一個方法來解決這個問題嗎?

我想過創建代碼爲純JS或使用延遲加載,但我似乎無法弄清楚如何讓它工作。

必須有更好的解決方案嗎?我覺得我失去了一些東西很明顯..

內容包含腳本的:

<script type="text/javascript"> 

$(window).bind("load", function() { 
    // code here 

    $(window).width(); // returns width of browser viewport 

    var width = $(window).width(); 

    if (width >= 642) { 
     $('.slider-content').load("templates/include/slider.php", function() { 
      $('.slider-content').show(200); 
     }); 
    } 

    else { 
     //alert('small') 
    } 
}); 
</script> 

感謝, 亞當

+0

JavaScript代碼在遇到時加載,並被視爲阻塞。任何依賴項都必須先加載。必須先加載jQuery,然後才能對jQuery進行任何引用。 – Bic

+1

[停止支付jQuery稅](http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax) – fcalderan

+0

這就是我認爲BIC,但是必須有一種方法來插入加載後的代碼...感謝您提前閱讀Fabrizio的鏈接。將很快給它,看起來它應該解決我的問題。 有沒有更乾淨的方法來做到這一點? – atoms

回答

0

在某些環境中,必須使用jQuery()代替$()See this question.

除此之外,您的問題可能與文檔尚未完成或綁定到已經通過的事件有關。試試這個:

jQuery(document).ready(function($) { 
    // Your code goes here. (You can safely use the $() function inside here.) 
}); 
+0

這可能與OP問題有關嗎? – fcalderan

+0

他說這是「打破」。在沒有更具體的東西的情況下,我認爲這意味着「ReferenceError:$沒有定義」 –

+0

如果'$'未定義(並且我們假設沒有其他庫被加載),即使'jQuery'也將是未定義的,因爲'window。$'只是'jQuery()的別名' – fcalderan