【问题标题】:canvas, trigger mouse event画布,触发鼠标事件
【发布时间】:2013-03-22 08:44:38
【问题描述】:

我正在尝试理解画布示例的代码:

为什么事件处理程序代码中的第三个参数为“false”?它代表什么?

完整代码在这里

function init () {
// ...
// Attach the mousemove event handler.
canvas.addEventListener('mousemove', ev_mousemove, false);
}

// The mousemove event handler.
var started = false;
function ev_mousemove (ev) {
  var x, y;

// Get the mouse position relative to the canvas element.
if (ev.layerX || ev.layerX == 0) { // Firefox
    x = ev.layerX;
    y = ev.layerY;
  }

【问题讨论】:

    标签: canvas mouseevent addeventlistener


    【解决方案1】:

    似乎缺少部分代码。正如你所说,变量 started 已设置但未使用,这就是为什么我觉得缺少一些代码部分(在 ev_mousemove 函数之后也缺少右大括号)。

    ev.layerX == 0 就在 || 之后这意味着“或”。就是这样使用的,所以它不会在 Firefox 中产生错误。基本上它说如果 ev.layerX 为真(现有)或如果为 0 则...

    ND

    【讨论】:

    • 非常感谢,帮了大忙!
    【解决方案2】:

    AddEventListener 中的第三个真/假参数用于“捕获”事件

    如果为真,那么您的“mousemove”事件将始终首先转到您的ev_mousemove,然后然后转到正常的DOM事件树.

    如果为 false,那么您的“mousemove”事件只会通过正常的 DOM 事件树。

    除非您有理由为自己的事件处理程序设置优先级,否则对于任何类型的事件,您通常都可以将此设置为 false。

    【讨论】:

    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多