0

我想经常更改我的背景图片,但它不起作用有人有想法

            var pics = function() {
                var $pic_holder = $(".holder");
                var timer = setTimeout(function () {
                    if ($pic_holder.css("background-image") !== "url(/picA.png)") {
                        $(".pic_holder").css("background-image", "url(/picA.png)")
                    }
                    else {
                        $(".pic_holder").css("background-image", "url(/picB.png)")
                    }
                }, 1000);
            }

谢谢

4

4 回答 4

1

更改setTimeoutsetInterval不使用相对 URL。( /picA.png) 我做了一些其他更改:

$(document).ready(function(){
      var $pic_holder = $(".holder");
      setInterval(function () {
          if ($pic_holder.css("background-image") !== "url(http://www.example.com/picA.png)") {
              $pic_holder.css("background-image", "url(http://www.example.com/picA.png)")
          }
          else{
              $pic_holder.css("background-image", "url(http://www.example.com/picB.png)")
          }
          console.log($pic_holder.css("background-image"));
      }, 1000);
});

小提琴:http: //jsfiddle.net/mj27g/

于 2013-05-22T13:12:57.540 回答
1

改变:

$(".pic_holder").css("background-image", "url(/picA.png)")

$pic_holder.css("background-image", "url(/picA.png)");

编辑:另外,正如其他人所指出的那样,使用setInterval,而不是setTimeout

于 2013-05-22T13:13:25.387 回答
0

这是一个更好的方法

var $pic_holder = $(".holder"),
    backChanger;

backchanger = (function backchanger () {
    if (!$pic_holder.data('bgphoto') !== 'photo-A') {
        bgUrl = '/picA.png';
        bgData = 'photo-A';
    } else {
        bgUrl = '/picB.png';
        bgData = 'photo-B';
    }

    $pic_holder.data('bgphoto', bgData).css("background-image", bgUrl);
    setTimeout(backchanger, 1000);  
}());

确保 if 语句中的代码执行,否则可能是另一个问题。

于 2013-05-22T13:44:22.500 回答
0

尝试 setInterval 函数

setInterval(function() {
      // Do something every 2 seconds
}, 2000);
于 2013-05-22T13:13:09.503 回答