2013-03-21 5 views
0

Я пытаюсь понять код для примера холста:холста, триггер события мыши

Почему третий параметр «ложь» в коде EventHandler? Что это означает?

Здесь полный код

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; 
    } 

ответ

2

Похоже, есть часть кода отсутствует. Как вы сказали, начальная переменная установлена, но не используется, поэтому я чувствую, что некоторая часть кода отсутствует (также функция закрытия отсутствует после функции ev_mousemove).

ev.layerX == 0 сразу после || что означает «ИЛИ». Это используется таким образом, чтобы он не создавал ошибку в Firefox. В основном это говорит, что если ev.layerX верно (существующий) или, если это 0 делать ...

ND

+0

Большое спасибо, отличная помощь! – user1477955

1

Третий истина/ложь параметр в AddEventListener используется для «захвата» события

Если это правда, тогда ваши события «mousemove» всегда будут сначала перейдите к вашим ev_mousemove и , затем перейдите в обычное дерево событий DOM.

Если false, то ваши события «mousemove» просто пройдут через обычное дерево событий DOM.

Если у вас нет оснований для приоритизации вашего собственного обработчика событий, вы можете оставить это как false для любых событий.

+0

Большое спасибо, теперь я также нашел ссылку об этом: [link] http://www.developphp.com/view_lesson.php?v=827 – user1477955

Смежные вопросы