0

この例に従って、1ページに複数のカルーセルを作成しようとしています。
foreachループでカルーセルを作成し、各カルーセルにc0、c1、c2などの名前を割り当てます(各カルーセルはaです<div>
ここで、例に従ってスクリプトを実行するには、次のコマンドを実行する必要があります。各カルーセルは個別に。
例えば:

<script type="text/javascript">
    $(document).ready(function() {

        $('#c0').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true, masked: false, itemstodisplay: 3, orientation: 'v' });
        $('#c1').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: false, masked: false, itemstodisplay: 5, orientation: 'h' });
        $('#c2').jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true, masked: true, itemstodisplay: 5, orientation: 'h' });

    });       

</script>

私のカルーセルはforeachループで作成されているため、いくつ持つかわからないため、forループで関数を呼び出そうとしました。

    for (int i = 0; i < counter; i++)
    {
        string cNum = "#c" + i.ToString();%>
        <script type="text/javascript">
            $(document).ready(function() {
                $(cNum).jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true });
            });
        </script>
   <%} %>

確認したところ、cNum値は大丈夫です。#c0、#c1などの値を取得しましたが、最初にあった「#c0」などと同等のものとして認識できません。

動的カルーセル名を関数に挿入するにはどうすればよいですか?

4

2 に答える 2

0

そうする代わりに、各divにクラスを与えるだけです。このような:

<div class="someClassThatIKnowIsACarousel">

次に、ループは必要ありません。

$(".someClassThatIKnowIsACarousel").jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true });
于 2012-05-18T02:16:57.170 に答える
0

コードの問題は、cNum動的に生成されたJavaScriptセクション内がASP変数として解釈されないことです。次のような方法で修正できます$('<% cNum %>')(JavaScriptの引用符にも注意してください。取得しないと、取得できますが$(#c0)、これは誤りです)。

ただし、アプローチが間違っているため、そのようなサーバー/クライアントコードを混在させることができる最善の方法は避けてください。

aquinasがすでに指摘しているように、最善の解決策はdivにクラスを追加することです。

HTML:

<div class="carousel">

JavaScript:

$('div.carousel').jsCarousel({ ... });
于 2012-05-18T02:30:27.913 に答える