2014-03-24 76 views
0

這裏是我寫的:爲什麼這個圖像改變功能不起作用?

var img_current = 0; 
var image0 = new Image() 
image0.src = "img/image_centrale/1_house_0.jpg" 
var image1 = new Image() 
image1.src = "img/image_centrale/1_house_1.jpg" 
var image2 = new Image() 
image2.src = "img/image_centrale/1_house_2.jpg" 

function affich_centrale() 
{ 
    if (house_bought == 1 && neighborhood_bought == 0) 
    { 
     img_current = 1; 
     document.images.main.src = eval("image" + img_current + ".src").innerHTML = 'image_centrale'; 
    } 
    else if (house_bought == 2 && neighborhood_bought == 0) 
    { 
     img_current = 2; 
     document.images.main.src = eval("image" + img_current + ".src").innerHTML = 'image_centrale'; 
    } 
    else{} 

這將繼續下去,但我覺得你得到的要點。我的代碼有什麼問題?圖像不會隨着我的「house_bought」變量而改變。

在我的HTML部分,我只是把這個:

<div id="image_centrale"> 
    <img src="img/image_centrale/1_house_0.jpg" name="main" /> 
</div> 

注:這是即將到來的全功能HTML/JS遊戲網站。

+5

...'eval'?你知道,這會殺死小貓和小狗。但是要回答你的問題,'someImgElm.src'將是一個_String_,並且_String_上沒有_innerHTML_。最重要的是,你使用了'='兩次,所以就像你試圖將_LHS_和_centre_部分設置爲_RHS_(''image_centrale'')。此外,我沒有看到「house_bought」和「neighborhood_bought」正在設置的位置,因此無論如何,您可能總是以「else {}」結尾。 –

+0

對不起,我應該已經更精確了,house_bought和'罩都設置之前。但是,正如我測試過的(警告按鈕提醒我發生變化),函數「kind of」有效,因爲它告訴我「img_current = 1」,當條件滿足時,它也是2。 所以,我猜這是document.images(...)部分誰不能正常工作(我一定寫錯了) – user3455921

回答

0

爲什麼你同時使用srcinnerHTMLsrc是您所需要的,並且也不需要eval。試試這個:

<div id="image_centrale"> 
    <img src="" name="main" /> 
</div> 
<script type="text/javascript"> 
    var img_current = 0; 
    var house_bought = 1; 
    var neighborhood_bought = 0; 
    var image0 = new Image() 
    image0.src = "img/image_centrale/1_house_0.jpg" 
    var image1 = new Image() 
    image1.src = "img/image_centrale/1_house_1.jpg" 
    var image2 = new Image() 
    image2.src = "img/image_centrale/1_house_2.jpg" 

    function affich_centrale() { 
     if (house_bought == 1 && neighborhood_bought == 0) { 
      img_current = 1; 
      document.images.main.src = image0.src; 
     } 
     else if (house_bought == 2 && neighborhood_bought == 0) { 
      img_current = 2; 
      document.images.main.src = image1.src; 
     } 
     else { } 
    } 
    affich_centrale(); 
</script> 

在此代碼示例,我硬編碼的值的變量,這只是爲了工作的例子,所以你將永遠看到的第一個圖像。改變它以滿足您的需求。

+0

你的建議實際上有更多的意義,但它仍然只顯示圖像設置首先是html。 「div」中的代碼是否不適合該功能? – user3455921

+0

當然它會顯示它。如果你想從空的圖像佔位符開始,那麼嘗試'

'。我會更新我的答案。 –

+0

在Chrome上,它仍然不會顯示任何內容,因爲'house_bought'變量會發生變化,但在Firefox上,它會顯示小圖標,表示沒有可找到的圖像!問題是否來自CSS? – user3455921

相關問題