我在JavaScript和PHP中创建了一个涉及网格的构建游戏。网格中的每一方是一个div,有自己的onmouseover和onmousedown事件功能:对多个对象使用相同的onmouseover函数
for(x=0; x < width; x++)
{
for(y=0; y < height; y++)
{
var div = document.createElement("div");
//...
div.onmouseclick = function() {blockClick(x, y)}
div.onmouseover = function() {blockMouseover(x, y)}
game.appendChild(div);
}
}
但是,所有的广场似乎有被添加的最后方的x和y。我可以理解为什么会发生这种情况 - 它将指针指向x和y,而不是克隆变量 - 但我该如何修复它?我甚至试过
for(x=0; x < width; x++)
{
for(y=0; y < height; y++)
{
var div = document.createElement("div");
var myX = x;
var myY = y;
div.onmouseclick = function() {blockClick(myX, myY)}
div.onmouseover = function() {blockMouseover(myX, myY)}
game.appendChild(div);
}
}
具有相同的结果。
我使用div.setAttribute("onmouseover", ...)
在Firefox中工作,但不是IE。 谢谢!
第二个伟大工程,谢谢! – phpscriptcoder 2010-05-15 16:15:29