一段js程式碼遇到一個bug,由於中間的隱式全域變數造成的,
由於程式碼較多,透過Google瀏覽器的js調試器才找到問題所在,
話說本人的電腦無論如何都裝不上fiefox,從去年開始嘗試了多次,均以失敗告終,
不過谷歌的調試也挺好用的。
簡化程式碼如下:
$(function( {
var pageNo = 2;//這個參數是變化的
var pageSize = 10;
test();
paginate(pageNo,pageSize);//由於test() 方法覆寫pageNo ,導致pageNo總是等於1
});
function test(){
pageNo = 1;//全域變量,覆蓋先前的pageNo ,相當於在js頂部寫var pageNo = 1
//這裡改為var pageNo = 1;就可以了
//do,,,
}
function paginate(pageNo,pageSize){
window.location.href = "user_list.action ?pageNo=" pageNo "&pageSize=" pageSize;
}
在js中建議所有的變數都用var 聲明,並且所有的變數都可以寫到頂部,因為js沒有區塊級作用域。