我有一个非常简单的 JavaScript 动画,如下所示
$(function() {
$('#slider1').cycle();
$('#slider2').cycle();
});
然后我在我的脑海中调用这个脚本:
<script type="text/javascript" src="js/slider.js"></script>
然后 ID 为“slider1”和“slider2”的 div 包含在 php 中,包含被调用到页面中的文件,如下所示:
<?php include('assets/col1.php'); ?>
包含文件中的代码如下所示:
<div id="slider1">
<img src="images/image1.png" />
<img src="images/imgae2.png" />
<img src="images/image3.png" />
<img src="images/image4.png" />
</div>
除非您使用 IE8 或 IE9,否则效果很好。 javascript 大约 75% 的时间都能工作,这就是为什么这让我感到困惑。当您加载页面或返回页面时,每隔一段时间它就不会激活 JavaScript,并且所有图像都会呈现在一长列中(本质上就是没有 js 功能的情况)
我怀疑它是按照 IE9 加载 PHP 和 javascript 的顺序排列的,但我只是 js 和 php 方面的新手,所以一些关于如何解决这个问题的非常明确的帮助将非常好。提前致谢。
最佳答案
说来话长……
PHP 将返回解释后的 HTML。每次包含文件时,PHP 都会刷新缓冲区,这意味着某些内容会先于其他内容返回到浏览器。发生这种情况时,页面仍处于加载状态。
因此,您需要确保调用 $(document).ready(function(e){ ... });
。这将使您的代码有机会在执行 javascript 之前完成刷新缓冲区并加载到浏览器中。
关于php - Javascript 的行为与 PHP 包含文件不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224520/