2013-07-27 141 views
0

嘗試在isEndOfGame變爲true時更改背景圖像,但它會轉到第一個圖像,然後停留在該圖像上。它console.logs「運行」每秒,但不會更改圖像。jQuery修改CSS屬性

var endOfGame = { 
     isEndOfGame: false, 
     displayEndScreen: function() { 
      setInterval(function() { 
       if (endOfGame.isEndOfGame === true) { 
        console.log("running"); 
gameController.ctx.clearRect(0, 0, gameController.canvas.width, gameController.canvas.height); 
       if ($("#canvas").css('background-image') == 'url(images/endOfGame.jpg)') { 
         $("#canvas").css('background-image', 'url(images/endOfGame1.jpg)'); 
        } 
       else { 
         $("#canvas").css('background-image', 'url(images/endOfGame.jpg)'); 
        } 
       } 
      }, 1000); 
     } 
    }; 

    endOfGame.displayEndScreen(); 

http://jsfiddle.net/HENHD/1/

如果有人可以使用上面用自己的圖像,的jsfiddle(不知道這是可能的上的jsfiddle)和嘗試,看看什麼是錯的,那將不勝感激。

+2

注意:您可以身後留下'其他if'一部分,它會返回相同'else'聲明。 – Pieter

+0

你設置isEndOfGame:false,然後檢查它爲真,最終期望運行? –

+0

我現在顯示它,但不能每1秒更改一次。新代碼現在正在上升。 – user2602079

回答

0

更改背景圖片,

$("#canvas").css('background-image', 'url(images/endOfGame1.jpg)'); 
+0

謝謝。我使自己的代碼相同,但在包括css文件在內的任何地方都更改爲背景圖像。我將這樣的代碼稱爲任何對象或函數之外的代碼,它會顯示第一個圖像,然後僅保留在該圖像上: $(document).ready(function(){ endOfGame.displayEndScreen(); }) ; 我只能說錯了。代碼的setInterval部分不起作用。它顯示一次,然後不會改變 – user2602079

-3

什麼是該屬性$(「#canvas」)。 attr('background','url(images/endOfGame1.jpg)');? 可能是必須的 - $(「#canvas」)。attr('style','background:url(images/endOfGame1.jpg)');?在CSS中使用

+0

我剛把它改成.css。我認爲.css以同樣的方式工作。我應該注意它正在工作,因爲這些圖像現在不會被繪製到畫布上,並且此功能會使它發生。它只是不會改變圖像。 – user2602079