不一样 如果在function里面的话 x是局部变量,y是全局变量 例如这样: function a(){ var x=y=0; } 因为是从左到右赋值的,相当于 function a(){ var x=(y=0); } y前面没有var关键字,所以是全局变量,出乎意料的结果,y可能会命名冲突。。 所以 一般这么写 function a(){ var x=0, y=0; }
和你說的意思差不多,在函數裏面y就變成了全局變量了。 本來是沒什麼的,但是因為我同一個頁面調用了兩次插件。導致第二個調用時的y和第一個調用時的y相同了。 大概的代碼為:var prevX = prevY = 0; $(document).mousemove(function(e){ e = e || window.event; var currentX = e.pageX; var currentY = e.pageY; var speedX = currentX - prevX; var speedY = currentY - prevY;
我一般这么写
var x=0,
y=0;
如果在function里面的话 x是局部变量,y是全局变量
例如这样:
function a(){
var x=y=0;
}
因为是从左到右赋值的,相当于
function a(){
var x=(y=0);
}
y前面没有var关键字,所以是全局变量,出乎意料的结果,y可能会命名冲突。。
所以 一般这么写
function a(){
var x=0,
y=0;
}
本來是沒什麼的,但是因為我同一個頁面調用了兩次插件。導致第二個調用時的y和第一個調用時的y相同了。
大概的代碼為:var prevX = prevY = 0;
$(document).mousemove(function(e){
e = e || window.event;
var currentX = e.pageX;
var currentY = e.pageY;
var speedX = currentX - prevX;
var speedY = currentY - prevY;
......
prevX = currentX;
prevY = currentY;
return false;
})這樣就導致第二次被調用的speedY一直為0。
呀,所以x应该是boolean类型的true把?
反正把
var prevX = prevY = 0;
換成
var prevX = 0;
var prevY = 0;
這個就不會出問題了。
而純JS就不會
function move()
{
var prevX = prevY = 0;
document.onmousemove =function(e){
e = e || window.event;
var currentX = e.pageX;
var currentY = e.pageY;
var speedX = currentX - prevX;
var speedY = currentY - prevY;
document.body.innerHTML = speedX + '-' + speedY;
prevX = currentX;
prevY = currentY;
return false;
}
}
move();
move();