Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导模式转盘重复内容_Javascript_Jquery_Twitter Bootstrap_Bootstrap Modal_Bootstrap Carousel - Fatal编程技术网

Javascript 引导模式转盘重复内容

Javascript 引导模式转盘重复内容,javascript,jquery,twitter-bootstrap,bootstrap-modal,bootstrap-carousel,Javascript,Jquery,Twitter Bootstrap,Bootstrap Modal,Bootstrap Carousel,我正在尝试创建一个Twitter引导模式,其中包含一个他们的旋转木马。我可以为页面上需要的每个实例使用一个单独的carousel元素,但我认为最好使用一个实例,并在需要时向它传递要显示的内容 我是通过div上的一个data属性来实现的,按下该属性将触发carousel模式 <div class="carousel trigger" data-toggle="modal"

我正在尝试创建一个Twitter引导模式,其中包含一个他们的旋转木马。我可以为页面上需要的每个实例使用一个单独的carousel元素,但我认为最好使用一个实例,并在需要时向它传递要显示的内容

我是通过div上的一个data属性来实现的,按下该属性将触发carousel模式

<div class="carousel trigger" data-toggle="modal"
                                        data-target="#timeline--modal--carousel" data-src='[
                                        "https://picsum.photos/id/100/2100/2000",
                                        "https://picsum.photos/id/1000/2100/2000",
                                        "https://picsum.photos/id/1011/2100/2000"
                                        ]'> TRIGGER
                                    </div>
触发器
我可以让它工作。但是,当第二次按下触发器时,我遇到了一个问题(好像您关闭了模式,然后想再次打开它或触发另一个图像旋转木马来显示。它会将第二个实例添加到第一个实例中,这样您将获得重复的图像或附加到第一个实例中的第二个图像集,依此类推

所以我一直在尝试让模态在关闭后重置内容,方法如下

        let carouselSrc = [],
        carouselSrcArray = carouselSrc;

    $j('.carousel.trigger').on('click touchend', function () {
        $j(this).addClass('active');

        let carouselSrc = $j(this).data('src'),
            carouselSrcArray = carouselSrc, // Pass it across
            i = 0, // for iterations
            active = ''; // for active class on first

        console.log('Clicked carouselSrc = ' + carouselSrc);
        console.log('Clicked carouselSrc.length = ' + carouselSrc.length);

        $j('#timeline--modal--carousel').on('shown.bs.modal', function (e) {

            // console.log(carouselSrc);
            // console.log(carouselSrc.length);

            // For each on the array
            carouselSrcArray.forEach(function (item, index, array) {

                // If this is the first one, set it to active
                if (i == 0) {
                    active = 'active';
                }

                // Create the indicators
                $j('#timeline--modal--carousel').find(
                        '.carousel-indicators')
                    .append(
                        '<li data-target="#timeline--carousel" data-slide-to="' +
                        i +
                        '" class="' + active + '"></li>');

                // Create the images for the carousel
                $j('#timeline--modal--carousel').find('.carousel-inner')
                    .append(
                        '<div class="carousel-item ' + active +
                        '"><img src="' +
                        item +
                        '" class="d-block w-100"></div>');

                // set vars for next in the loop
                i++;
                active = '';

                // I tried resetting the array, but this leads to blank carousel the next time it is called ¯\_(ツ)_/¯
                // if (i == carouselSrc.length) {
                //     carouselSrc.splice(0, carouselSrc.length);
                //     carouselSrcArray.splice(0, carouselSrcArray.length);
                // }
            });
        });

    });


    $j('#timeline--modal--carousel').on('hide.bs.modal', function (e) {
        carousel-indicators li, .carousel-inner .carousel-item', this).remove(); // remove content
    });
let carouselSrc=[],
carouselSrcArray=carouselSrc;
$j('.carousel.trigger')。在('单击touchend',函数(){
$j(this.addClass('active');
设carouselSrc=$j(this).data('src'),
carouselSrcArray=carouselSrc,//将其传递
i=0,//用于迭代
active='';//对于第一个上的活动类
log('Clicked carouselSrc='+carouselSrc);
log('Clicked carouselSrc.length='+carouselSrc.length);
$j('#timeline--modal--carousel').on('show.bs.modal',函数(e){
//控制台日志(carouselSrc);
//控制台日志(转盘长度);
//对于阵列上的每个
carouselSrcArray.forEach(函数(项、索引、数组){
//如果这是第一个,请将其设置为“活动”
如果(i==0){
主动=‘主动’;
}
//创建指标
$j('#timeline--modal--carousel')。查找(
“.carousel指示器”)
.附加(
“
  • ”); //为旋转木马创建图像 $j('#timeline--modal--carousel')。查找('.carousel-inner')) .附加( ''); //为循环中的下一个设置变量 i++; 主动=''; //我尝试重置阵列,但这会导致下次调用时出现空白旋转木马\_(ツ)_/¯ //如果(i==旋转木马长度){ //转盘式钢筋混凝土拼接(0,转盘式钢筋混凝土长度); //转盘阵列拼接(0,转盘阵列长度); // } }); }); }); $j('#timeline--modal--carousel').on('hide.bs.modal',函数(e){ 转盘指示器li、.carousel-inner.carousel-item',this.remove();//移除内容 });
    因此,我删除了图像和指示器的HTML,但这不起作用。我还尝试在调用数组后重置数组,但这样做意味着下次调用模式旋转木马时,它是空的

    所以你可以明白我的意思,我在这里设置了一个演示

    有人能帮我吗

    谢谢