【发布时间】:2014-02-26 01:35:58
【问题描述】:
好的,我有一个Jquery脚本,它的功能是确定窗口的宽度,onload。如果宽度大于 642px,它会调用 .load() 来加载图像滑块。原因是移动设备不会提供滑块所需的图像或 js。
当 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>
谢谢, 亚当
【问题讨论】:
-
JavaScript 代码在遇到时加载,并被视为阻塞。必须首先加载任何依赖项。必须先加载 jQuery,然后才能对 jQuery 进行任何引用。
-
这就是我认为的 Bic,但是必须有一种方法可以在加载后插入代码...感谢 Fabrizio 我之前阅读的链接。很快就会试一试,看起来它应该可以解决我的问题。有没有更清洁的方法来做到这一点?
-
一个更干净的方法当然应该是避免在页面的头部或中间使用jQuery sn-ps,并清楚地分离您的代码。这需要在包含 jQuery 之后将所有脚本放在底部
-
您正在使用 jQuery 绑定 onload 事件。您可以尝试使用 vanilla JS 绑定事件:
window.onload(function () { ... }
标签: javascript jquery