无法改变鼠标移动的价值

时间:2015-11-20 07:49:54

标签: javascript jquery

如果页面上有鼠标移动,我试图更改值,但它始终保持不变。它始终写着" no"点击。

var desifre = "no";

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

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

如果页面上有鼠标移动,更改值的正确方法是什么?

3 个答案:

答案 0 :(得分:5)

我认为问题是你正在重新定义函数中的变量,你试过以下吗?通过重新定义变量,您将更改范围并将值分配给局部变量而不是全局变量!

var desifre = "no";

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

这篇文章可能会有帮助:http://javascriptissexy.com/javascript-variable-scope-and-hoisting-explained/

如果你不使用它,你还需要将事件e传递给函数吗?

答案 1 :(得分:4)

您实际上定义了一个局部变量,而不是更改外部/全局变量。将其更改为如下所示:

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

答案 2 :(得分:1)

尝试以下代码,当鼠标移动时,每次移动时索引增量和desifre值都为yes http://jsfiddle.net/a31jwxj5/1/