0

我不确定我是否正确使用鼠标事件,因为这是我第一次使用它。我想要做的是,如果我将鼠标悬停在我绘制的一个对象上,我想显示一个说明它是哪个城市、人口和他们市中心的图像等。

<script>
function startCanvas() {
  var c = document.getElementById("myCanvas");
  var ctx = c.getContext("2d");
  //first circle
  var one = c.getContext("2d");
  //second circle
  var two = c.getContext("2d");
  //third cirle
  var three = c.getContext("2d");
  //fourth circle
  var four = c.getContext("2d");
  //fifth cirle
  var five = c.getContext("2d");
  // new image
  var image = new Image();
  image.onload = function () {
    ctx.drawImage(image, 69, 50);
    //draw a circle
    one.beginPath();
    one.arc(180, 90, 10, 0, Math.PI * 2, true);
    one.closePath();
    one.fill();
    two.beginPath();
    two.arc(155, 138, 10, 0, Math.PI * 2, true);
    two.closePath();
    two.fill();
    three.beginPath();
    three.arc(160, 180, 10, 0, Math.PI * 2, true);
    three.closePath();
    three.fill();
    four.beginPath();
    four.arc(257, 210, 10, 0, Math.PI * 2, true);
    four.closePath();
    four.fill();
    five.beginPath();
    five.arc(238, 235, 10, 0, Math.PI * 2, true);
    five.closePath();
    five.fill();
  };
  image.src = 'denmark.jpg';
  //function hover over circle one, give alert
  var startlisten = new mouseEvent.Listen({canvas:document.getElementById('myCanvas')});
  var circle = new mouseEvent.Register({
    type: 'mouseover',
    name: 'test',
    x: [180],
    y: [90],
    callback: function () { alert('this is a test'); }
  });
  startlisten.add(test);
}
</script>
</head>
<body onload="startCanvas()">
  <canvas id="myCanvas" width="600" height="600";">
    Your browser does not support the HTML5 canvas tag.
  </canvas>
</body>
</html>
4

1 回答 1

0

你的问题是这段代码:

var startlisten = new mouseEvent.Listen({canvas:document.getElementById('myCanvas')});
var circle = new mouseEvent.Register({
    type: 'mouseover',
    name: 'test',
    x: [180],
    y: [90],
    callback: function () { alert('this is a test'); }
});

那不是原生JS。试试这个:

c.addEventListener( // Since your code defince `c` as `document.getElementById("myCanvas")`
    'mouseover',
    function(e){
        e = e || window.event;
        alert('this is a test');
    }
);
于 2013-02-14T09:46:34.247 回答