繁体   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