2014-02-25 74 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