javascript - 在 JavaScript 中更新数据后,我的 DOM 对象不会更新

标签 javascript dom methods

我有一个用构造函数创建的正方形,我的所有数据都会更新,包括它的 .style.top 和 .style.left,但它不会在页面(图片)上更新。这是我的代码,我省略了构造函数本身,因为它可能不是问题。我已经包含了构造函数的方法和方法的调用,这不会更新图片。

  KeyBlock.prototype.move = function(event) {
  if(event.keyCode == 37)
    this.x -= 10;
  if(event.keyCode == 38)
    this.y -= 10;
  if(event.keyCode == 39)
    this.x += 10;
  if(event.keyCode == 40)
    this.y += 10;
  if (this.y < 0)
    this.y = 0;
  if (this.x < 0)
    this.x = 0;
  this.character.style.left = String(this.x) + "px";
  this.character.style.top = String(this.y) + "px";
  console.log(this.character.style.left);
}

me = new KeyBlock("me");
addEventListener("keyup", KeyBlock.prototype.move.bind(me));

如果您想查看构造函数,可以在这个问题中找到它,但回答问题可能不需要它:Event Handler function in prototype's method, why does it think .keyCode is a property of undefined in JavaScript?

提前谢谢:)

最佳答案

在这个问题或链接的构造函数中显示的代码中,您没有为 Angular 色提供 position 样式值。为了让 style.leftstyle.top 执行任何操作,您必须将 style.position 值设置为默认值以外的值静态

<小时/>

仅供引用,当您向字符串添加数字时,不需要手动将内容转换为字符串(数字将自动转换)。所以代替这个:

this.character.style.left = String(this.x) + "px";

你可以这样做:

this.character.style.left = this.x + "px";

关于javascript - 在 JavaScript 中更新数据后,我的 DOM 对象不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27682749/

相关文章:

javascript - 使用ajax在while循环中更新MySql数据库记录 - 仅更新第一行

javascript - 用点数组绘制不规则圆

javascript - 如何搜索 DOM 以计算在产品页面上找到的 $ 符号的数量?

javascript - 无法使用 Javascript 更改 <button >'s "type"

python - TkInter 中小部件的 .pack 和 .configure 之间的区别?

javascript - 内容总是在第二次点击时更新,而不是第一次?

javascript - 加载时、调整大小时和滚动时 - 运行单独功能的最佳方式是什么?

用于隐藏 html 列的 Javascript 语法

oop - 单独使用方法名称解析 MATLAB 类方法句柄

java - 将对象传递给方法是否比通过对象调用方法更有效?