我一直在制作这个小脚本,出于某种原因,其中一个变量不会增加它的值。
代码如下所示:
function get_swf(mode){
var swf_path;
swf_update(); //Updating max_num
if (location.hash) current = location.hash.replace(/[^0-9.]/g, ""); //Getting only numbers
switch(mode){
case "random":
current = Math.floor((Math.random() * max_num) + 1);
swf_path = "uploads/" + current + ".swf";
break;
case "next":
current += 1;
if(current > max_num) current = 1;
swf_path = "uploads/" + current + ".swf";
break;
case "previous":
current -= 1;
if(current == 0) current = max_num;
swf_path = "uploads/" + current + ".swf";
break;
}
swfobject.embedSWF(swf_path, "lolswf", "800", "400", "9.0.0");
location.hash = current;
}
这段代码在一个函数中,变量:current
并且max_num
是全局变量。一切都按预期工作,除非调用“下一个”案例。在这种情况下,即使变量current
没有达到max_num
. 例如,如果我设置:
max_num = 5
和current = 2
我称“下一个”current
设置为 1。
我无法理解它,你能帮帮我吗?
非常感谢!
编辑
在进一步检查我的代码后,我发现了一行似乎有错误的代码。这一行在我提供的代码之上。(我已经将代码更新为整个函数,大家可以看看)
if (location.hash) current = location.hash.replace(/[^0-9.]/g, ""); //Getting only numbers
我对这一行的期望是,它只是覆盖了current
变量,因此用户不必总是从头开始。但是,为什么current
即使它应该增加,它的值也会是“1”?为什么其他情况会按预期工作?
非常感谢您的宝贵时间!