如何在同一页面上两次使用相同的 jquery 脚本

How to use the same jquery script twice on a same page

我是JQuery的新手,目前遇到的问题如下:

我用 carouFredSel 制作了一个滑块底座。

当我在一页中使用 1 个滑块时,效果很好。 但是当我在同一个页面上使用 2 个滑块时,它会变得混乱(即 1 个滑块正常工作但另一个滑块不工作。)

相关代码如下:

<script>
    if ($('#carmod17').length) {
        $('#carmod17').carouFredSel({
            responsive: true,
            pagination: "#fooitemcatcar2",
            prev: '#prevmod17',
            next: '#nextmod17',
            auto: true,
            scroll: {
                duration: 1500,
                pauseOnHover: true
            },
            items: {
                height: 'variable',
                visible: {
                    min: 1,
                    max: 1
                }
            }
        });
    }
</script>

我知道 ID 必须是唯一的,但如何动态创建唯一 ID?

非常感谢您的帮助。

谢谢。

ID 在 DOM.

中必须是唯一的

改用 class 来初始化滑块。

`$('.slider')`   // Make sure you add the className to the element to which you want
               // to attach the slider

如果用例仅用于将滑块附加到元素,那么为什么需要动态 ID。

在上面的例子中你可能有一个元素

<div id="carmod17"

您要将滑块附加到其中,并且效果很好。

现在,当第二个元素出现时,您可能又添加了一个元素

 // Slider 1
 <div id="carmod17"

 // Slider =2
 <div id="carmod17"

现在当您尝试附加它时 $('#carmod17').carouFredSel({ 它只会分配给具有该 ID 的第一个元素。因此,向元素添加 class 并使用 class 附加相同的元素。

// 滑块 1

 // Slider =2
 <div id="carmod17" class="slider"

现在您只需使用

$('.slider').carouFredSel({ 并且它们都应该按预期工作。

在选项取决于实例的多个元素上初始化插件的一种常见方法是使用 each 循环遍历它们,以便在循环内隔离实例。

在主滑块元素、按钮和寻呼机上使用常见的 类,例如 sliderprevnext 以及 pager

$('.slider').each(function(){

   // instance specific elements needed for plugin
   var $slider = $(this), 
       $prev = $slider.find('.prev'),
       $pager=  $slider.find('.pager'),
       $next = $slider.find('.next');

   //initialize instance
   $slider.carouFredSel({
            responsive: true,
            pagination: $pager,
            prev: $prev,
            next: $next,
            auto: true,
            scroll: {
                duration: 1500,
                pauseOnHover: true
            },
            items: {
                height: 'variable',
                visible: {
                    min: 1,
                    max: 1
                }
            }
        });
});