不确定如何说出这一点,但希望你能得到我的漂移。我试图使用我的If语句将我的images数组的内容合并到另一个数组中,然后有一个函数使用该数组进行图片幻灯片放映。
我觉得我应该提一下这是一项学校作业,所以如果我也没有,我也不想更改chgSlide
功能。
我认为我的问题是,当我var myPix=[]
时,它会清除合并。但我真的不确定解决方案是什么,我已经尝试过myPix=redCarsPic
,但它没有用。
此外,在代码中,我注释了我合并数组的方式,我不确定某种方法是否优于其他方法,我对jquery有点偏爱并希望如果可以的话,能够保持这种方法。
继承我的脚本块:
function radioCheck(){
if (document.getElementById("redCars").checked){
//alert("red"); Array.prototype.push.apply(myPix,redCarsPic);
//alert("red"); myPix.push.apply(myPix, redCarsPic);
$.merge(myPix,redCarsPic)
alert(redCarsPic+" r2");
};
if (document.getElementById("blueCars").checked){
alert("blue"); myPix.push.apply(myPix, blueCarsPic);
};
if (document.getElementById("greenCars").checked){
alert("green"); myPix.push.apply(myPix, greenCarsPic);
};
}
var myPix=[];
thisPic=0;
imgCt=myPix.length-1;
alert(myPix+"mpixalt")
function chgSlide(direction){
if(document.images){
thisPic=thisPic+direction
if(thisPic>imgCt){
thisPic=0
}
if(thisPic<0){
thisPic-imgct
}
document.myPicture.src=myPix[thisPic]
}
}
var redCarsPic =["images/redCarsA.jpg","images/redCarsB.jpg","images/redCarsC.jpg","images/redCarsD.jpg","images/redCarsE.jpg"];
var blueCarsPic =["images/blueCarsA.jpg","images/blueCarsB.jpg","images/blueCarsC.jpg","images/blueCarsD.jpg","images/blueCarsE.jpg"];
var greenCarsPic =["images/greenCarsA.jpg","images/greenCarsB.jpg","images/greenCarsC.jpg","images/greenCarsD.jpg","images/greenCarsE.jpg"];
如果需要,请提供整个代码: http://pastebin.com/YLtWFciE
答案 0 :(得分:1)
当您按下表单中的提交按钮时,它会尝试提交您的表单,导致重新加载页面,从而将您的所有状态重新初始化为新的页面,这是一个空数组。
您可以通过将按钮更改为普通按钮,而不是提交按钮或阻止表单提交的默认操作来停止提交表单。
最简单的改变就是改变这个:
<input type="submit" id="submitButton" value="Go!" onclick="radioCheck()"/>
到此:
<input type="button" id="submitButton" value="Go!" onclick="radioCheck()"/>
如果没有提交按钮,则不会提交表单,也不会重新加载页面。
工作演示:http://jsfiddle.net/jfriend00/4bx35hjy/
仅供参考,也可以在radioCheck()
功能发布之前取消表单提交,但由于您永远不想提交表单,因此最好不要在第一次提交时使用提交按钮的地方。