我写了一些jquery,不确定为什么它不起作用

时间:2014-07-16 01:09:39

标签: javascript php jquery html css

我一直在为我的合作伙伴写一个网站,我正在尝试使用jquery创建一个图像轮播来更改背景样式属性但是到目前为止它还没有工作我得到的是我在我的CSS中设置的股票图像占位符,请快速查看我看错的地方

我有一些PHP运行来计算专门用于此目的的文件夹中的照片数量

    <?php 
      $dir="images/ticker-images"
      $file_count = count(glob("{$dir}/*.*"))
    ?>

那么jquery就是这个

    $(document).ready(function(){
      var x;
      var y = <?php echo $file_count>;
      var dir = <? php echo $dir>;

      while true do {
        x = math.floor(math.random()*y);
        $("image-ticker").css({'background': 'url("' + dir + '/' + x + '.jpg"'});
        sleep(5);
      };
    };

如果我犯了一个新手的错误,那么,请提前谢谢。

2 个答案:

答案 0 :(得分:3)

  1. Sleep是一个PHP方法,而不是JS方法。

  2. 您的do loop结构不正确。 while条件应该在do块之后,而不是之前,如

    do {
        // code
    } while (condition);
    

    但我认为无论如何你最好还是setInterval

  3. 您的dir变量可能是一个字符串,因此您需要用引号将其分隔。

  4. dir的php块应该从<?php而不是<? php

  5. 开始
  6. 您的js代码中的dirfile_count个php块缺少结束标记。

  7. 您在document.ready

  8. 后缺少右括号
  9. 您的PHP代码不会以semicolons

  10. 结束这些行
  11. javascript Math对象已大写。

  12. 您的image-ticker选择器可能是id selector,需要以哈希为前缀(#

  13. 试试这个:

    <?php 
      $dir="images/ticker-images";
      $file_count = count(glob("{$dir}/*.*"));
    ?>
    

    那么jquery就是这个

    $(document).ready(function(){
      var x;
      var y = <?php echo $file_count ?>;
      var dir = "<?php echo $dir; ?>";
    
      var int=setInterval(function () {
        x = Math.floor(Math.random()*y);
        $("#image-ticker").css({'background': 'url("' + dir + '/' + x + '.jpg"'});
    
      },5000);
    });
    

答案 1 :(得分:0)

您的php缺少jquery部分中的结束标记。它需要?>标记才能关闭。你的while循环需要在括号中有条件 - &gt; while( run )
注意我使用了run,在使用循环时需要一个条件,可以使其成为假。否则,您将遇到无限循环,导致浏览器或计算机崩溃 的修改
此外,javascript使用do {} while();格式,你的循环在大括号中,你的条件在括号中。