2012-05-18 113 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({ ... });