2012-05-03 2 views
2

Попытка сделать эту функцию динамической, а не статической.Динамическая функция динамического цикла jQuery

Это был оригинальный код, который работает

$('#goto1').click(function(e) { 
    e.preventDefault(); 
    $('#slider').cycle(1); 
}); 

Вот динамическую функцию (не работает). Предупреждение выводит правильный идентификатор, но ползунок не работает.

$('.cycle_goto').live('click', function(e) { 
    e.preventDefault(); 
    var cycle_id = $(this).attr('id').substr(4); 
    alert ('##'+cycle_id+'##'); 
    $('#slider').cycle(cycle_id); 
}); 

HTML, заключается в следующем:

<div id="slider"> 
    <img class="slide" src="<?=FE_URL;?>images/slide1.jpg" style="position: relative !important;" alt="Slide 1."> 
    <img class="slide" src="<?=FE_URL;?>images/slide2.jpg" alt="Slide 2"> 
    <img class="slide" src="<?=FE_URL;?>images/slide3.jpg" alt="Slide 3"> 
</div> 
<div class="slider_nav"> 
    <ul id="slider_nav_ul"> 
     <li><a class="cycle_goto" id="goto1" href="#">Hotel &amp; Residence<span class="arrow"><!-- --></span></a></li> 
     <li><a class="cycle_goto" id="goto2" href="#">Yacht Charter<span class="arrow"><!-- --></span></a></li> 
     <li><a class="cycle_goto" id="goto3" href="#">Properties<span class="arrow"><!-- --></span></a></li> 
    </ul> 
</div> 

РЕДАКТИРОВАТЬ

получил это работает путем преобразования идентификатор элемента в целое число со следующим кодом:

$('.cycle_goto').live('click', function(e) { 
    e.preventDefault(); 
    var myString = $(this).attr('id').substr(4); 
    var myInteger; 
    myInteger = parseInt(myString); 
    var cycle_id = myInteger; 
    $('#slider').cycle(cycle_id); 
}); 
+1

Является ли он циклическим, когда вы вызываете ту же динамическую функцию, что и cycle_id = 1 всегда ?. или какое-то статическое значение внутри него ?. почему бы вам не дать часть html. – Niranjan

+0

Обновлено, чтобы показать html. – James

+0

Кроме того, да, он будет циклически проверять id cycle_id = 1. – James

ответ

2

Вы использовали логин $('#slider').cycle(1);.

Синтаксис: $('#slideshow').cycle('command');, и поэтому вы не можете выбрать элемент.

Edit:

Вы можете перейти к элементу или выбрать группу элементов путем изменения параметра в API:

slideExpr: нуль, // выражение для выбора слайдов (если что-то кроме всех детей требуется)

Например: $('#slider').cycle({ slideExpr: $('#slider .child') });

+0

Получил работу, см. Править выше. Спасибо за вашу помощь :-) – James

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