0

我正在尝试按照示例在一个页面中创建多个轮播。
我在 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

您的代码中的问题是cNum动态生成的 JavaScript 部分内部没有被解释为 ASP 变量。你可以用类似的东西来解决这个问题$('<% cNum %>')(还要注意 JavaScript 引号,没有 get 你会得到$(#c0),这是错误的)。

但是,您的方法是错误的,请尽量避免像这样混合服务器/客户端代码。

正如 aquinas 已经指出的那样,最好的解决方案是向 div 添加一个类:

HTML:

<div class="carousel">

JavaScript:

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

而不是这样做,只需给每个 div 一个类。像这样:

<div class="someClassThatIKnowIsACarousel">

然后你不需要循环:

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