在另一个函数中使用合并数组

时间:2015-04-16 01:02:00

标签: javascript jquery arrays image

不确定如何说出这一点,但希望你能得到我的漂移。我试图使用我的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

1 个答案:

答案 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()功能发布之前取消表单提交,但由于您永远不想提交表单,因此最好不要在第一次提交时使用提交按钮的地方。