簡體   English   中英

使用不同的參數循環調用jQuery函數

[英]Call jQuery function in a loop with different parameters

示例之后,我試圖在一頁中創建多個輪播。
我在foreach循環中創建輪播,並為每個輪播分配名稱c0,c1,c2等(每個輪播都是<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'等價。

如何在函數中插入動態輪播名稱?

不必這樣做,只需給每個div一個類。 像這樣:

<div class="someClassThatIKnowIsACarousel">

然后,您不需要循環:

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

您的代碼中的問題在於,動態生成的JavaScript部分中的cNum不會被解釋為ASP變量。 您可以使用$('<% cNum %>')類的方法來解決此問題(還要注意JavaScript引號,如果沒有得到,則會得到$(#c0) ,這是錯誤的)。

但是,您的方法是錯誤的,請盡量避免那樣的服務器/客戶端代碼混合使用。

正如阿奎納斯已經指出的那樣,最好的解決方案是向div中添加一個類:

HTML:

<div class="carousel">

JavaScript:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM