2014-03-24 79 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

相关问题