未定义的样式
undefined style
我有大学的家庭作业,经典的15个谜题。我对这两种风格有意见。这是我遇到问题的代码
function siirra_pala(pala) {
var palaRivi = parseInt(pala.style.top) / palanKoko;
var palaSarake = parseInt(pala.style.left) / palanKoko;
}
错误代码为"未捕获类型错误:无法读取未定义的属性'top'"answers"未捕获的类型错误:不能读取未定义属性'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);
}
}
}
如果你需要更多的代码,请告诉哪一个。谢谢
@Bergi:
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) });
参考应该是好的。
此处:
palat[i].addEventListener("click", siirra_pala);
传递给siirra_pala
的参数是点击事件,而不是点击的元素。您应该修改函数,从事件对象中选择单击的元素属性,或者简单地使用this
。
请参阅:
document.getElementById('x').addEventListener("click", handler);
function handler(e) {
console.log(e); // full event object
console.log(this); // clicked element
this.style.background = "#aaa";
}
#x {
width: 50px;
height: 50px;
background: #eee;
}
<div id="x"></div>
因此,对你的功能的修复应该是这样的:
function siirra_pala(pala) {
var palaRivi = parseInt(this.style.top) / palanKoko;
var palaSarake = parseInt(this.style.left) / palanKoko;
}
(请记住,此功能不是很有用)
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未定义的样式
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- IE错误:无法设置属性'的值;样式':对象为null或未定义
- 我一直收到未捕获的引用错误:未定义下拉菜单和未捕获的类型错误:无法读取 null 的属性“样式”
- 使用 Javascript 将样式动态添加到样式表,但我收到“无法读取未定义的属性'长度'”错误
- 无法读取未定义的属性“样式”
- 样式.在元素正确定义时显示未定义
- MGWT ScrollPanel.scrollTo(0, y) 导致无法读取未定义的属性“样式”
- 是对HTMLElement#样式的未定义属性的赋值的返回值,保证与赋值相同
- Div样式未定义(Javascript)