jquery两个函数使用相同的数组变量

时间:2015-03-18 01:42:33

标签: jquery arrays variables

两个幻灯片功能,幻灯片图像数组格式不一样(一个有src:文本之前),我需要两个函数使用相同的变量所以我不想创建两个数组,我不知道怎么做,任何简单的方法?这是代码

第一个幻灯片放映功能

    $('#slide').slideshow1({
      preload: true,
      timer: true,
      // alot of other setting

      // i need use variable here, ie. slide: slide_image_array
      slides: [
        {src: 'img/slide-image-01.jpg'},
        {src: 'img/slide-image-02.jpg'},
        {src: 'img/slide-image-03.jpg'}
      ]
    });
  }

另一个幻灯片放映功能

function slideshow2(){

  $.backstretch([
    // i need use same variable here, ie. slide_image_array
    'img/slide-image-01.jpg',
    'img/slide-image-02.jpg',
    'img/slide-image-03.jpg'
  ],
  {duration: 1000, fade: 800});

}

两个问题

  1. 如何使用一个变量'slide_image_array'存储两个函数的图像集?

  2. 在'slide_image_array'数组中,怎样才能有一个变量来输入数字,即。数字是8,然后自动设置slide-image-01.jpg - slide-image-08.jpg,使用各个功能?请给我一些提示

  3. 非常感谢:)。

3 个答案:

答案 0 :(得分:2)

尝试

var backstretch = [
    // i need use same variable here, ie. slide_image_array
    'img/slide-image-01.jpg',
    'img/slide-image-02.jpg',
    'img/slide-image-03.jpg'
    ];

var slideshow = backstretch.map(function(val) {
  return {"src":val}
});

$('#slide').slideshow1({
      preload: true,
      timer: true,
      // alot of other setting    
      // i need use variable here, ie. slide: slide_image_array
      slides: slideshow
});
// }

function slideshow2(){    
  $.backstretch(backstretch,
  {duration: 1000, fade: 800});  
}

答案 1 :(得分:1)

您可以在共享范围中创建变量

var slides = [];
for (var i = 0; i < 8; i++) {
    slides.push({
        src: 'img/slide-image-' + (i < 10 ? '0' + i : i) + '.jpg'
    })
}

function slideshow1() {
    $('#slide').slideshow1({
        preload: true,
        timer: true,
        slides: slides
    });
}

function slideshow2() {

    $.backstretch($.map(slides, function () {
        return this.src;
    }), {
        duration: 1000,
        fade: 800
    });

}

答案 2 :(得分:1)

您还可以将用于处理滑块图像的代码放在单独的对象中:

var SliderImageStorage = {  

    create : function(index, imgTemplate) {
        toArray: function() {
            ...             
        },
        toSrcArray: (function(){
            ... 
        };
    }
}

var sliderImageStorage = SliderImageStorage.create(5, 'imgs/slide-image-{0}.jpg');