2012-05-03 9 views
2

この関数を静的ではなく動的にしようとしています。jQueryサイクルプラグイン動的関数

これはここ

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

作品動的機能(動作しない)であり、元のコードでした。アラートは正しいIDを出力しますが、スライダーは循環しません。次のように

$('.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> 

EDIT

それは次のコードで整数に要素IDを変換して作業得た:

$('.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

show htmlに更新されました。 – James

+0

また、それはid cycle_id = 1を常に循環させます。 – James

答えて

2

論理的に無効な$('#slider').cycle(1);を使用しました。

構文は$('#slideshow').cycle('command');であるため、要素に移動することはできません。

編集:あなたが要素に行くか、APIでのオプションを変更することで、要素のグループを選択することもでき

slideExpr:スライドを選択するためのヌル、//表現

例:(すべての子ども以外の何か が必要な場合):$('#slider').cycle({ slideExpr: $('#slider .child') });

+0

上記の編集を参照してください。ご協力いただきありがとうございます :-) – James

関連する問題