gpt4 book ai didi

javascript - 未定义的风格

转载 作者:行者123 更新时间:2023-11-30 16:57:21 25 4
gpt4 key购买 nike

我有大学作业,经典的15拼图。我对这两种风格有疑问。这是我遇到问题的代码

function siirra_pala(pala) {
var palaRivi = parseInt(pala.style.top) / palanKoko;
var palaSarake = parseInt(pala.style.left) / palanKoko;
}

错误代码是“未捕获的类型错误:无法读取未定义的属性‘top’”和“未捕获的类型错误:无法读取未定义的属性‘left’”。

如果有帮助:siirra_pala(pala) 是 move_tile(tile)palaRivi 是 tileRow,palaSarake 是 tileColumnpalanKoko 是 tileSize。

我将 palanKoko 设置为 100。样式定义在:

function muodosta_palat(pelialue) {
for (var y = 0; y < 4; y++) {
for (var x = 0; x < 4; x++) {
if (!(x === tyhja_paikka.x && y === tyhja_paikka.y)) {
var pala = document.createElement('div');
pala.id = 'pala' + x + y;
pala.textContent = 4 * y + x + 1;
pala.style.left = x * palanKoko + 'px';
pala.style.top = y * palanKoko + 'px';
pala.className = 'pala';
pelialue.appendChild(pala);
}
}
}

如果您需要更多代码,请告知是哪一个。谢谢你

@伯吉:

window.onload = function () {

muodosta_palat(document.getElementById('pelialue'));
var palat = document.querySelectorAll(".pala");
document.getElementById('sekoitusnappi').onclick = sekoita;
for (var i = 0; i < palat.length; i++) {
palat[i].addEventListener("click", siirra_pala);
palat[i].addEventListener("mouseover", mouseOver);
palat[i].addEventListener("mouseout", mouseOut);
}
};

最佳答案

从您的错误来看,pala 似乎未定义(未设置,不存在),至少不在该函数的范围内。

变量 pala 是在一个函数中创建的,它只在这个函数中 被知道。您要做的是捕获点击事件,并将点击的内容传递给函数。

如果您更改对函数的调用..

palat[i].addEventListener("click", function () { siirra_pala(this) });

引用应该没问题。

关于javascript - 未定义的风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29456433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com