2016-03-31 3 views
0

Я сделал базу слайдера от carouFredSel.Как использовать тот же сценарий jQuery на той же странице

Когда я использую 1 слайдер на одной странице, он отлично работает. Но когда я использую 2 ползунков на той же странице, он испортится (первый слайдер работает нормально, но второй слайдер не работает.)

Вот мой сценарий:

<script> 
    if ($('.carmod17').length) { 
     $('.carmod17').carouFredSel({ 
      responsive: true, 
      pagination: "#fooitemcatcar2", 
      prev: '#prevmod17', 
      next: '#nextmod17', 
      auto: true, 
      scroll: { 
       duration: 1500, 
       pauseOnHover: true 
      }, 
      items: { 
       height: 'variable', 
       visible: { 
        min: 1, 
        max: 1 
       } 
      } 
     }); 
    } 
</script> 

Рабочий код в jsfiddle как показано ниже.

JSFIDDLE

бы очень ценю вашу помощь.

Спасибо.

+0

Он работает нормально, когда я дублирую весь код HTML, CSS и JS и переименовываю все значения «17» в «18». Таким образом, проблема не имеет 2 carouFredSels на одной странице. Проблема заключалась бы в том, как идентификаторы id и classNames заблокированы для 1-й карусели. Я еще не просмотрел код, чтобы узнать, в чем проблема, но пока я не смогу сделать это, вы можете увидеть мою вилку своего jsfiddle. Это показывает, что обе карусели работают на одной странице: http://jsfiddle.net/briankueck/9m0owzec/ – Clomp

+0

С вашей идеей это означает создание 2 слайдеров. Неэффективно реализовать на WordPress (например.) – Mailmulah

ответ

0

Если классы для слайдера похожи вы могли бы сделать что-то вроде:

$('[class*="carmod"]').each(function(){ 
    $(this).carouFredSel({...}); 
}); 

Если все ползунки имеют один и тот же класс (.carmod17), то это легко:

$('.carmod17').each(function(){ 
    $(this).carouFredSel({...}); 
}); 

В первом если вы нацеливаете все классы, которые содержат carmod от их имени. Теперь вы должны быть уверены, что только обертки, которые вы хотите инициализировать слайдер, имеют на них такой класс. Потому что, если какой-либо другой элемент DOM имеет класс, который содержит в нем carmod, и вы не хотите, чтобы он был слайдером, это не сработает.

Если вы знаете, что ваши ползунки будут иметь классы как .carmod17, .carmod18, .carmod19 и т.д. Затем вы можете настроить счетчик, чтобы увидеть, сколько там этих ползунков и положить его в цикле:

for(var i = 0; i < sliders.length; i++){ 
    $('.carmod'+i).carouFredSel({...}); 
} 

Теперь, в зависимости от того, начнется ли он с 17, вы поместите var i = 17, и вы добавите это 17 к счетчику (sliders.length + 17) (где sliders - ваши ползунки на странице, которые вы можете получить и посчитать).

Надеюсь, это поможет.

+0

Спасибо @dingo_d Я использую ваш второй код. Это работа для макета, но разбивка на страницы и предыдущая стрелка не могут работать должным образом. Они указывают на SLIDER 2. Пожалуйста, проверьте здесь [JSFIDDLE] (http://jsfiddle.net/rocky72/pxM45/372/) – Mailmulah

+0

Вам не следует использовать идентификаторы для того, что может появляться дважды на вашем сайте. У вас есть: 'prev: '# prevmod17', next: '# nextmod17',' которые являются идентификаторами. Кроме того, вы должны проверить содержимое html ваших слайдеров. Попробуйте проверить его и сначала исправить, что не так. –

+0

Теперь измените идентификатор с классом, но все равно сталкивайтесь с проблемой здесь [JSSFIDDLE] (http://jsfiddle.net/rocky72/pxM45/377/). – Mailmulah

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