2013-06-08 5 views
3

Новичок-вопрос Я полагаю.addEventListener mousemove на готовом документе

Следующий код является частью функции, которую я вызываю при подготовке документа. Он предназначен для постоянного возврата значений текущей позиции мыши всякий раз, когда мышь перемещается.

Нечетная вещь, которая происходит: Перемещение мыши на готовый документ не записывает ничего на консоль. Я знаю, что функция mouse_monitor работает, потому что я использую эту функцию в другом «mousedown» -eventlistener, а затем записывает текущую позицию мыши на консоль.

//Mouse Monitor 

    canvas.addEventListener('mousemove', mouse_monitor, false); 


//Mouse Monitor Request 
    var mouse = new Array(); 
    var mouse_monitor = function(e) { 
     var canvasOffset=$("#canvas").offset(); 
     var offsetX=canvasOffset.left; 
     var offsetY=canvasOffset.top; 
     mouse.x = e.pageX - offsetX; 
     mouse.y = e.pageY - offsetY; 
     return mouse; 
     console.log(mouse); 
    } 
+0

Также обратите внимание, что если addEventListener имеет место перед назначением mouse_monitor, addEventListener не добавляет никакого события – Loris

ответ

2
return mouse; 

Любые заявления после этой строки не будет выполнена.

Хорошо, а затем получить что-то работу и добавить к нему/изменить его пошагово:

var mouse_monitor = function(e) { 
    var x = e.pageX; 
    var y = e.pageY; 
    console.log(x, y); 
} 

window.onload = function() { 
    this.addEventListener('mousemove', mouse_monitor); 
} 

Но вы упомянули «документ готов», так что если вы используете JQuery, вы должны избегать использования addEventListener(), потому что это не кросс-браузер:

var mouse_monitor = function(e) { 
    var x = e.pageX; 
    var y = e.pageY; 
    console.log(x, y); 
} 

$(document).ready(function() { 
    $(this).on('mousemove', mouse_monitor); 
}); 

Другого подход заключается в console.log() все переменные и их значение, ведущий к неисправной коде, чтобы определить, какие значения не так, как должно быть.

+0

Конечно, извините. Обмен двух последних утверждений не решает проблему, хотя :( –

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