2015-11-20 3 views
1

Я пытаюсь изменить значение, если на странице есть движение мыши, но оно всегда остается неизменным. Он всегда пишет «нет» при нажатии.Невозможно изменить значение на mousemove

var desifre = "no"; 

$('body').bind('mousemove', function(e){ 
var desifre = "yes"; 
}); 

$('#test').click(function(){ 
document.write(desifre); 
}); 

Каков правильный способ изменения значения, если есть перемещение мыши на странице?

+0

[Здесь] (HTTP: // StackOverflow .com/questions/500431/what-is-the-scope-of-variables-in-javascript/500459 # 500459), вы можете прочитать о области переменных в JavaScript –

ответ

5

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

var desifre = "no"; 

$('body').bind('mousemove', function(e){ 
    desifre = "yes"; 
}); 

Эта статья может быть полезной: http://javascriptissexy.com/javascript-variable-scope-and-hoisting-explained/

Также вам нужно передать событие e в функцию, если вы не используете?

4

Фактически вы определяете локальную переменную вместо изменения внешнего/глобального. Измените его, чтобы выглядеть следующим образом:

$('body').bind('mousemove', function(e){ 
    desifre = "yes"; 
}); 
1

попробуйте этот следующий код, когда мышь двигаться, прирост индекса и desifre значение будет да в каждом движении http://jsfiddle.net/a31jwxj5/1/

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