2016-01-18 2 views
0

Я использую jq.carousel (http://www.eafit.edu.co/banners-eafit/carousel/index.html), чтобы продемонстрировать некоторые изображения номеров. Когда вы нажимаете на слайд комнаты, он направляется на страницу с уникальным URL-адресом, например http; // www ...../14095 /.Сокращение сценария с использованием цикла for и массива

Мой первый код ниже работает, но когда я пытаюсь объединить сценарии «комнаты» в один, используя цикл for и массив (см. Второй код), он не работает. Кто-нибудь знает, что мне не хватает или нужно обновить? Спасибо, вперед!

Примечание: "Старт:" в сценарии в основном говорит, что слайд должен появиться после загрузки страниц

Код 1: Рабочая Fine

<script src="/path/to/jq.carousel.js"></script> 
<script> 
(function() { 
    // Room 1 
    if (window.location.href.indexOf('14083') > -1) { 
     var $carousel = $('#carousel_2').carousel({ 
      start: 1, 
      indicator: true 
     }); 
    } 
    // Room 2 
    if (window.location.href.indexOf('14094') > -1) { 
     var $carousel = $('#carousel_2').carousel({ 
      start: 2, 
      indicator: true 
     }); 
    } 
    // Room 3 
    if (window.location.href.indexOf('14095') > -1) { 
     var $carousel = $('#carousel_2').carousel({ 
      start: 3, 
      indicator: true 
     }); 
    } 

    // Script for Prev and Next buttons to navigate through the carousel 
    var totalSlides = $(".carousel_box").length - 4; 
    $('#carousel_2_prev').on('click', function(ev) { 
     ev.preventDefault(); 
     $carousel.carousel('prev'); 
    }); 

    $('#carousel_2_next').on('click', function(ev) { 
     ev.preventDefault(); 
     $carousel.carousel('next'); 
    }); 

}()); 
</script> 

Код 2: Комбинированный "Номер" Сценарии

<script src="/path/to/jq.carousel.js"></script> 
<script> 
    var nodearray = ['14083', '14094', '14095']; 

    (function() { 
     // Section that needs to be updated 
     for (var i = 0; i < nodearray.length; i++) { 
      if (window.location.href.indexOf(nodearray[i]) > -1) { 
       var $carousel = $('#carousel_2').carousel({ 
        start: i++, 
        indicator: true 
       }); 
      } 
     } 

     // Script for Prev and Next buttons to navigate through the carousel 
     var totalSlides = $(".carousel_box").length - 4; 
     $('#carousel_2_prev').on('click', function(ev) { 
      ev.preventDefault(); 
      $carousel.carousel('prev'); 
     }); 

     $('#carousel_2_next').on('click', function(ev) { 
      ev.preventDefault(); 
      $carousel.carousel('next'); 
     }); 

    }()); 
</script> 
+1

'старт: я ++,' 'должен быть старт: я + 1,' –

ответ

0

Возможно, вы не хотите, чтобы ++ в строке 8 во втором блоке кода. Это увеличит счетную переменную i.

<script src="/path/to/jq.carousel.js"></script> 
<script> 
    var nodearray = ['14083', '14094', '14095']; 

    (function() { 
     // Section that needs to be updated 
     for (var i = 0; i < nodearray.length; i++) { 
      if (window.location.href.indexOf(nodearray[i]) > -1) { 
       var $carousel = $('#carousel_2').carousel({ 
        start: i+1, 
        indicator: true 
       }); 
      } 
     } 

     // Script for Prev and Next buttons to navigate through the carousel 
     var totalSlides = $(".carousel_box").length - 4; 
     $('#carousel_2_prev').on('click', function(ev) { 
      ev.preventDefault(); 
      $carousel.carousel('prev'); 
     }); 

     $('#carousel_2_next').on('click', function(ev) { 
      ev.preventDefault(); 
      $carousel.carousel('next'); 
     }); 

    }()); 
</script> 
+0

не должен 'старт: я,' 'быть начало: I + 1,' –

+0

Да, хороший момент! Я только что обновил свой ответ –