0

我正在用 javascript 制作游戏,我需要以下帮助:

我想制作一个图像 = 一个变量然后我只想在我想要的时候显示图像。

所以我希望图像默认隐藏,但它总是显示我所做的任何事情。我只是一个初学者,我看过这个页面和互联网上的其他人来帮助我:http ://www.roseindia.net/javascript/javascriptexamples/javascript-hide-image.shtml

这是到目前为止的代码:

<html> <head></head>
<body>
     <img src="http://wwcdn.weddingwire.com/static/vendor/55001_60000/56375/thumbnails/64x‌​64_SQ_1342622451725-Matangiaerial.jpg"
          id="islandimg">
     <script type="text/javascript">
     var playermoney = 10000;
     var islandarray = new array;
     var car = 500; var watch = 100;
     var diamond = 2000;
     function hideImage() { 
          if (document.getElementById) {
               document.getElementById('islandimg').style.visibility = 'hidden';
          }
     </script>
</body></html>

代码中包含游戏的其他内容,但请忽略它。

4

5 回答 5

3

有几个原因这不起作用

  1. 图像返回 404
  2. 如其他所述,array未定义
  3. }if 语句后缺少结尾

这是JSFiddle中的工作版本

这是带有注释的 JS 部分

 var playermoney = 10000;
 var islandarray = new Array(); //array was undefined. 
 // a more concise way to write this by the way is: var islandarray = [];
 var car = 500; var watch = 100;
 var diamond = 2000;
 function hideImage() { 
      if (document.getElementById) {
           document.getElementById('islandimg').style.visibility = 'hidden';
      }
 }//Missing end braces 

 hideImage(); //missing call to the function 

顺便说一句,找出这些问题的最简单方法是查看 Chrome / Firefox 控制台,它会抱怨诸如array变量问题之类的事情。

于 2012-11-09T21:14:31.180 回答
2

看起来像您页面上的语法错误..

var islandarray = new array;

应该是

var islandarray = new Array(); 或者 var islandarray = [] ;

此外,您似乎从未调用过该函数。你只是在声明它..

hideImage(); // Call this function in your script 
             //  after taking care of the errors.. 

function hideImage() { 
          if (document.getElementById) {
               document.getElementById('islandimg').style.visibility = 'hidden';
          }
};  -- > Missing this as well

hideImage();  // Then call your function

检查小提琴

于 2012-11-09T21:11:11.880 回答
1

您可以使用jQuery并执行以下操作:

function hideImage() {
  $('#islandimg').hide();
}


更新:

另一种选择是:

function hideImage() { 
    document.getElementById('islandimg').style.visibility = 'hidden';
}

或这个:

function hideImage() { 
    document.getElementById('islandimg').style.display = 'none';
}

最后两个有什么区别=> http://webdesign.about.com/od/css/f/blfaqhidden.htm

它接缝您想要切换图像的可见状态,因此您也应该创建一个show函数。(通过使用 jQuery,您可以使用该toggle()函数。)

如果您不想显示图像,您也可以CSS默认隐藏它,然后JavaScript使用您的showImage()功能切换显示状态。

#islandimg {
    visibility: hidden;
}

或者

#islandimg {
    display: none;
}
于 2012-11-09T21:08:28.083 回答
1

正如一些评论(包括我的评论)所暗示的那样,您实际上从未调用过该函数。这是我对您的脚本的编辑

<html> <head></head>
<body>
     <img src="http://wwcdn.weddingwire.com/static/vendor/55001_60000/56375/thumbnails/64x‌64_SQ_1342622451725-Matangiaerial.jpg"
          id="islandimg">
     <script type="text/javascript">
     var playermoney = 10000;
     var islandarray = new Array();
     var car = 500; var watch = 100;
     var diamond = 2000;
     function hideImage() {
          if (document.getElementById) {
               document.getElementById('islandimg').style.visibility = 'hidden';
          }
         }
// NOW CALL hideImage() TO MAKE IT DO SOMETHING
hideImage();
     </script>
</body></html>

http://jsfiddle.net/rVnfF/

于 2012-11-09T21:11:46.223 回答
0

provious 帖子已经回答了你的问题。如果要调用页面加载的函数,则需要插入以下代码:

<body onload="hideImage();">

但更正其他错误:

var islandarray = new Array();

最后的 }

否则 jscript 将不会加载。您应该使用 Firefox 和 Firebug(或其他工具)来检查错误!

于 2012-11-09T21:20:59.923 回答