Bootstrap 4轮播上的hasClass不起作用

Posted

技术标签:

【中文标题】Bootstrap 4轮播上的hasClass不起作用【英文标题】:hasClass on Bootstrap 4 carousel not working 【发布时间】:2021-09-30 13:06:16 【问题描述】:

我正在使用 Bootstrap 4 轮播构建一个基本的窄播系统。有些幻灯片包含图片,有些则包含 Youtube 视频。

当 div 包含 Youtube 视频时,我想在幻灯片处于活动状态时自动播放它,并在幻灯片不活动时停止它。但不知何故,hasClass 函数无法识别 id="video-1" 的 div 上的“活动”类。

<script type="text/javascript">
    $( document ).ready(function() 
        console.log( "document loaded" ); // added for testing
        if ($("#video-1").hasClass('active')) 
            console.log( "video loaded" ); // added for testing
            $("#ytplayer-1")[0].src += "&autoplay=1";
         else 
            $("#ytplayer-1")[0].src += "&autoplay=0";
                  
    );
</script>

这是我的html

<div id="narrowcasting-carousel" class="carousel slide h-100" data-ride="carousel" data-interval="600000">
    <div class="carousel-inner h-100">
        <div class="carousel-item h-100 item-0" id="no-video" data-interval="10000">
             <img src="/images/image.png" />
        </div>
    </div>
    <div class="carousel-inner h-100">
        <div class="carousel-item h-100 item-1 active" id="video" data-interval="20000">
             <iframe id="ytplayer-1"   src="https://www.youtube.com/embed/[CODE_HERE]?controls=0&amp;loop=0&amp;rel=0&amp;autoplay=0" frameborder="0" allowfullscreen="" allow="autoplay">
    </iframe>
        </div>
    </div>
    <div class="carousel-inner h-100">
        <div class="carousel-item h-100 item-2" id="no-video" data-interval="5000">
             <img src="/images/image.png" />
        </div>
    </div> 
</div>  

当我使用 onClick 事件或击键事件时,它确实有效。但这显然不是我需要的。

【问题讨论】:

【参考方案1】:

试试这个代码

<script type="text/javascript">
    $( document ).ready(function() 
        console.log( "document loaded" ); // added for testing
        if ($("iframe").parent().hasClass('active')) 
            console.log( "video loaded" ); // added for testing
            $("#ytplayer-1")[0].src += "&autoplay=1"; // You can refactor this line
         else 
            $("#ytplayer-1")[0].src += "&autoplay=0";
                  
    );
</script>

【讨论】:

不幸的是,这段代码对我不起作用。 hasClass 仍然没有检测到活动的 div

以上是关于Bootstrap 4轮播上的hasClass不起作用的主要内容,如果未能解决你的问题,请参考以下文章

每页多个轮播 Bootstrap 5

Bootstrap 4 垂直轮播在 Bootstrap 5 beta 中不起作用

更改 Bootstrap 4 轮播控件颜色

Bootstrap 4:轮播淡入淡出过渡不起作用

点击时如何更改引导轮播上的图像?

Bootstrap 4轮播在jQuery的循环中添加项目不起作用