如果页面上有鼠标移动,我试图更改值,但它始终保持不变。它始终写着" no"点击。
var desifre = "no";
$('body').bind('mousemove', function(e){
var desifre = "yes";
});
$('#test').click(function(){
document.write(desifre);
});
如果页面上有鼠标移动,更改值的正确方法是什么?
答案 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/