2012-05-18 64 views
0

我试图在this示例之后的一个页面中创建多个传送带。
我在foreach循环中创建我的传送带,并为每个传送带分配名称c0,c1,c2等(每个传送带是<div>
现在,为了根据示例运行脚本,我应该分别跑到每个转盘上。
例如:在具有不同参数的循环中调用jQuery函数

<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'等。

如何将动态轮播名称插入到函数中?

回答

1

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

<div class="someClassThatIKnowIsACarousel"> 

那么你不需要一个循环:

$(".someClassThatIKnowIsACarousel").jsCarousel({ onthumbnailclick: function(src) { alert(src); }, autoscroll: true }); 
+0

的最佳解决方案!非常感谢!!! :) – user990635

0

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

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

正如阿奎那已经指出的那样,最好的解决办法是添加一个类的div:

HTML:

<div class="carousel"> 

的JavaScript:

$('div.carousel').jsCarousel({ ... });