2013-09-11 4 views
0

Возможно, это глупый вопрос. Но я действительно не могу этого понять.Используйте селектор вместо «this» в JQuery

Я использую JQuery Cycle2. И после некоторой персонализации у меня возникла простая проблема. Мне нужно знать, что такое «Индекс» моего текущего слайда.

На сайте плагина найдена эта строка кода, которая отлично работает.

$('#cycle-1 .cycle-slide').click(function(){ 
    var index = $('#cycle-1').data('cycle.API').getSlideIndex(this); 
    alert(index); 
}); 

Это дает мне правильный индекс. Но я пытаюсь поймать этот Индекс при щелчке по другому элементу. Поэтому я не могу использовать параметр (это).

Тогда я попробовал это.

$('.anotherelement').click(function(){ 
    var mycycle = $('#cycle-1 .cycle-slide'); 
    var index = $('#cycle-1').data('cycle.API').getSlideIndex($(mycycle)); 
    alert(index); 
}); 

Он не возвращает мой текущий индекс скольжения. Он возвращает «-1». Кто-нибудь знает, как передать объект (селектор) в качестве параметра getSlideIndex()?

спасибо: D

+1

Можете ли вы представить скрипку для него? –

+0

'$ (mycycle)' -> 'mycycle [0]' должен сделать его идентичным с использованием 'this' вместо –

+0

getSlideIndex (mycycle [0]); ? – Krishna

ответ

0

Вы можете использовать $('.cycle-slideshow').data('cycle.opts').currSlide, чтобы получить текущий индекс слайд

$('.anotherelement').click(function(){ 
    var index = $('.cycle-slideshow').data('cycle.opts').currSlide; 
    var currSliderNum = index+1; 
    alert(currSliderNum); 
    return false; 
}); 

FIDDLE

+0

Вам нужно изменить имя класса 'cycle-slideshow' на ваш слайдер' id' или 'class name' –

+0

Спасибо, что полностью работает: D – user2770256

+0

Рад помочь вам :) –

0

В первой части кода this является DOM элемент, а не объект JQuery. Попробуйте вместо этого:

var index = $('#cycle-1').data('cycle.API').getSlideIndex(mycycle[0]); 

Однако, по-видимому, у вас есть несколько .cycle-slide элементов. Это будет только первый. В первом коде у вас есть доступ к одному, поскольку только один щелкнул. Вам нужно решить, какой из них вы хотите настроить.

+0

Спасибо, это было также полезно. – user2770256

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