2015-03-18 2 views
1

две слайд-функции, формат слайд-изображения не такой же (один имеет src: текст раньше), мне нужно использовать две функции с одинаковой переменной, поэтому я не хочу создавать два массива, я не знаю, как это сделать , любой простой способ? вот кодjquery две функции используют одну и ту же переменную массива

первый слайд-шоу функция функция

$('#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, используйте каждую функцию? пожалуйста, дайте мне несколько советов

Большое спасибо :)

ответ

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 
    }); 

} 
+0

awesome !!! работа прекрасна, еще две информации, которые я хочу знать, если номер магазина в другом js-файле, этот файл имеет только переменную, другой код, т.е. main js file (var i = 1; i <= number_variable; i ++) ..., в другом файле js var number_variable = 8, мой метод хорош или плох? пожалуйста, дайте мне несколько советов, и почему слайдшоу2 работает? массив имеет текст «src», почему этот метод может фильтровать текст «src» на слайдшоу2, большое спасибо :) – aboutjquery

+0

@aboutjquery для второго запроса см. ответ от guest271314 –

+1

@aboutjquery, если 'number_variable' находится в другом файле, который должен сначала загрузится файл с кодом цикла, а затем функции 'slideshow1' –

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

спасибо, его работа !!! я изучаю метод возврата из этого ответа :) – aboutjquery

1

Вы также можете поместить ваш код для обработки изображений для вашего слайдера в отдельном объекте:

var SliderImageStorage = { 

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

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

спасибо :) Я научусь создать форму движения этого ответа – aboutjquery

Смежные вопросы