Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript行为与PHP包含文件不一致_Php_Javascript - Fatal编程技术网

Javascript行为与PHP包含文件不一致

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

我有一个非常简单的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>

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
。默认情况下,这将隐藏它们