2010-10-26 47 views
0

我有一个网页,我可以点击它来添加图像。如果我再点击图片,它会变大,如果我再次点击,它会将其大小调整回原始大小。 如果我然后单击屏幕上的其他位置,我可以创建另一个图像,并通过单击它来增大和缩小此图像。 问题是只有最新的图像可以通过点击调整大小,即使没有任何变量被删除或更改。 这是我正在开发的游戏的一部分。 我用尽可能少的代码做了一个示例页面来试用它,并可以在这里找到。 http://johncleary.net/hg/ 我要的是能够在任何时候点击任何图像上,它会不断地缩小为什么只能调整我最近添加的页面元素的大小?

+0

'pieceC'变量有什么意义?我没有看到任何理由。 – 2010-10-26 03:27:41

+1

您的标题应该是您问题的摘要;像“请帮助我”这样的标题对于您的问题不是很好的广告。 – meagar 2010-10-26 03:29:00

回答

3

从网页上的代码,我看到你正在使用innerHTML += ...添加新的图像 - 这ISN”这是一件非常好的事情,因为它会导致浏览器每次都重新创建所有内部元素,而这种可能会导致与事件处理程序发生奇怪的交互。

考虑使用DOM方法来创建和添加元素,例如:

var e = document.createElement('img'); 
e.id = id; 
e.onclick = pieceClicked; // No parameter required, this.id is available directly inside the function 
... 
board.appendChild(e); 

其他一些旁注:

  1. 您使用xPix * yPix作为ID的一部分:如果你期望这是唯一的,它可能不是。例如,x = 500, y = 10x = 10, y = 500将导致相同的ID。如果仅仅使用xPix + ',' + yPix作为一个字符串本身?

  2. 初始化Pieces[id]的几行可以使用对象表示法简化为更简单的形式:Pieces[id] = { Piece: ..., xPix: ..., yPix: ... }

相关问题