javascript - 为什么我的脚本不会在鼠标单击时更新?

标签 javascript html dom onclick

我似乎无法弄清楚为什么我的代码无法更新。我使用的浏览器没有控制台控件,而且我没有其他浏览器可供使用,所以我不知道到底发生了什么,除了我的所有脚本除了 onMouseUpdate/事件监听器行之外都可以工作这一事实。这是我的代码:

HTML

<canvas id="game" width="500" height="500" style="border:1px solid #000000;position:absolute;top:10px;left:10%">

JavaScript

var c = document.getElementById("game");
var ctx = c.getContext("2d");
var ballX;
var ballY;
var ballZ;
var ballXVel;
var ballYVel;
var ballZVel;
var mx=0;
var my=0;
var oldx;
var oldy;

document.addEventListener('onmousedown', onMouseUpdate, false);

function onMouseUpdate(e) {
  mx = e.pageX;
  my = e.pageY;
  renderWorld();
}

function renderWorld(){
  ctx.fillStyle = "#3355FF";
  ctx.fillRect(0,0,500,380);
  ctx.strokeRect(50,100,400,300);
  ctx.fillStyle = "#00DD00";
  ctx.fillRect(0,380,500,120);
}

function renderBall(){
  ctx.beginPath();
  ctx.arc(ballX,ballY,ballZ,0,2*Math.PI);
  ctx.fillStyle = "#FFFFFF";
  ctx.fill();
  ctx.stroke(); 
  ctx.closePath();
}

function reset(){
  ballX=250;
  ballY=380;
  ballZ=40;
  ballXVel=0;
  ballYVel=0;
  ballZVel=0; 
}

function detectKick(){
  oldx=mx;
  oldy=my;

  loopDetectKick(); 
}

function loopDetectKick(){
  if(oldx==mx&&oldy==my){

    setTimeout(loopDetectKick(),100);

  } else{

    renderWorld();
  }
}

renderWorld();
reset();
renderBall();
detectKick();

最佳答案

只需更改线路

document.addEventListener('onmousedown', onMouseUpdate, false);

document.addEventListener("mousedown", onMouseUpdate, false);

我已将 onmousedown 更改为 mousedown 并将单引号替换为双引号。

关于javascript - 为什么我的脚本不会在鼠标单击时更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214415/

相关文章:

javascript - Codeigniter 不从多表单页面返回第一个提交名称

javascript - 使用 jquery 创建四个子 div 后在单个 div 中动态创建多个 div

jQuery CSS Animate 在 Firefox、Chrome 中不起作用,但在 Safari 中起作用

javascript - HTML 如何防止有人突出显示 div 中的文本?

java - 在 JAVA 中,流式和基于树的 XML 解析器在开始时是否消耗相似的内存量

javascript - 为什么 getComputedStyle 不能使用像 :hover? 这样的伪类

javascript - knockout.js 可观察数组,错误 "Uncaught ReferenceError: Unable to process binding "

javascript - 来自 jquery 注册的纯 JavaScript 的调用事件

javascript - 我想更改传单中一层的图标颜色,我有两个点,图层都显示为蓝色默认图标

java - 需要帮助通过 DOM java 格式化 xml