Javascript Canvas 图像 onclick 不工作

标签 javascript html canvas

我无法使 DOM 图像 onclick 事件起作用。

var context = document.getElementById('canvas').getContext('2d');

var image = new Image();
image.src = "foo.png"
image.onclick = function(e) { console.log("clicked"); }


setInterval(function() {

context.drawImage(image, 100, 100, 50, 50);    

};

为什么我在点击图片时没有收到日志消息。在开发人员工具中,我可以看到图像的 onclick 函数不为空。

最佳答案

是的,Musa 说的……以及其他一些事情。

对您的代码进行一些更改

  • Image.src=”foo.png” 应该在 image.onclick 函数之后
  • Context.drawImage 应该在 image.onclick 函数中
  • 据我所知不需要 setInterval

试试这个:

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<style>
    body{ background-color: ivory; }
    canvas{border:1px solid red;}
</style>

<script>
$(function(){

    var context=document.getElementById("canvas").getContext("2d");

    var image=new Image();
    image.onload=function(){
       context.drawImage(image,0,0);
    }
    image.src="http://i.imgur.com/nJiIJIJ.png";

    document.getElementById("canvas").addEventListener("click", function(){console.log("clicked");}, false);


}); // end $(function(){});
</script>

</head>

<body>
    <canvas id="canvas" width=300 height=300></canvas>
</body>
</html>

关于Javascript Canvas 图像 onclick 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15331264/

相关文章:

JavaScript 获取两个日期之间的天数

javascript - 无法将 SVG 正确导入 Canvas

javascript - 动态添加元素到数组

php - 授予用户帐户访问权限一段时间?

javascript - HTML 输入文本框 onChange 不工作

html - 寻找 HTML5 <select> 元素 CSS3 样式解决方案 : no image files, 跨浏览器兼容

javascript - 为什么谷歌地图在网站上不起作用?

java使用线程来避免GUI死锁

python - 为什么这个 Canvas 太大了一个像素?

javascript - 当提交 promise 的 then() 时,Vuex3 突变不起作用