저는 그리드가 포함 된 JavaScript 및 PHP로 제작 게임을 만들고 있습니다. 사각형의 모든 추가 된 마지막 사각형의 x와 y를 갖고있는 것 같다,여러 객체에 동일한 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);
}
}
그러나 : 그리드의 각 사각형은 자신의 onMouseover와와하면 onMouseDown 기능, 사업부입니다. 왜 이런 일이 일어나고 있는지 알 수 있습니다 - 변수를 복제하는 대신 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);
}
}
같은 결과가 있습니다.
나는 Firefox에서는 작동하지만 IE에서는 작동하지 않는 div.setAttribute("onmouseover", ...)
을 사용하고있었습니다. 감사합니다.
두 번째는 잘 작동합니다, 감사합니다! – phpscriptcoder