Javascript行为与PHP包含文件不一致
我有一个非常简单的javascript动画,看起来像这样Javascript行为与PHP包含文件不一致,php,javascript,Php,Javascript,我有一个非常简单的javascript动画,看起来像这样 $(function() { $('#slider1').cycle(); $('#slider2').cycle(); }); 然后我在脑海中输入这样的脚本: <script type="text/javascript" src="js/slider.js"></script> 然后,id为“slider1”和“slider2”的div包含在php中,包括调用到页面中的文件,如下所示: <?php
$(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>
include文件中的代码如下所示:
<?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(函数(e){…})代码>。这将使您的代码有机会在执行javascript之前完成缓冲区刷新并加载到浏览器中。说来话长
PHP将返回解释的HTML。每次包含文件时,PHP都会刷新缓冲区,这意味着某些内容会先返回到浏览器。发生这种情况时,页面仍处于加载状态
因此,您需要确保调用$(document).ready(函数(e){…})代码>。这将使您的代码有机会在执行javascript之前完成缓冲区刷新并加载到浏览器中。我在使用Dojo时遇到了类似的问题,我解决了以下问题:
将主div或父div显示样式设置为“无”:
<div id="g_body" style="display:none">
然后,页面仅在Dojo元素完全加载时显示
我相信jQuery中也有类似的东西,但我不确定。可能:
$(document).ready(function() {});
希望这有帮助。我在使用Dojo时遇到了类似的问题,我解决了如下问题:
将主div或父div显示样式设置为“无”:
<div id="g_body" style="display:none">
然后,页面仅在Dojo元素完全加载时显示
我相信jQuery中也有类似的东西,但我不确定。可能:
$(document).ready(function() {});
希望这有帮助。Opps忘了提到我正在使用PHP中的cycle-light.js插件,该插件包含服务器上的文件,然后将结果发送给用户(客户端)。所以浏览器不会对代码的PHP部分做任何事情。但是尝试使用调试器,认为它是F12,然后检查是否有任何错误。Opps忘了提到我正在使用PHP的cycle-light.js插件,包括服务器上的文件,然后将结果发送给用户(客户端)。所以浏览器不会对代码的PHP部分做任何事情。但是尝试使用调试器,认为它是F12,然后打开它,检查是否有任何错误。现在就尝试!我知道这很简单,因为我在任何地方都找不到一个直截了当的答案!$(function(){…})
不是这方面的简写吗?$(function(){…})
是$(document)的别名。ready(…)
好的,它似乎正在工作,(在我转储缓存之后),但是现在所有图像都可以看到一秒钟,然后捕捉到位,动画开始。似乎在等待页面加载时,div就在那里可见,直到加载完成-\您可以将它们放在父div中,并在其上使用display:none
。这将隐藏他们的默认尝试现在!我知道这很简单,因为我在任何地方都找不到一个直截了当的答案!$(function(){…})
不是这方面的简写吗?$(function(){…})
是$(document)的别名。ready(…)
好的,它似乎正在工作,(在我转储缓存之后),但是现在所有图像都可以看到一秒钟,然后捕捉到位,动画开始。似乎在等待页面加载时,div就在那里可见,直到加载完成-\您可以将它们放在父div中,并在其上使用display:none
。默认情况下,这将隐藏它们