javascript - JS 在应该这样做时不删除类
问题描述
我有一个滑块,第一张幻灯片有第一张幻灯片。当我在滑块中时,它会自动添加活动类。我希望如果这张幻灯片也有活动的类和第一张幻灯片,那么刷卡器的高度将为 100vh。
当我转到下一张幻灯片时,滑块不会有第一张幻灯片,所以我希望滑动高度是自动的。
我正在尝试这样做,但它不应用 height: auto 当我转到第二张幻灯片时......它不起作用:
if ($('.slider').hasClass('first-slide', 'active')) {
$('.swiper').css('height', '100vh')
} else {
$('.swiper').css('height', 'auto')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="swiper">
<div class=" swiper-wrapper ">
<div class="slider ">
<!-- I only put 1 slider but you understand is more than one -->
</div>
</div>
</div>
解决方案
首先,文档显示 hasClass 采用单个 class,而不是列表。
其次,如果您有两个.slider
s,$('.slider').hasClass(...)
将始终只查询第一个。请参阅获取同一类的所有元素的outerHeight之和
我认为您想在每次幻灯片更改后调用以下代码,它会查找活动的第一张幻灯片并根据查询是否返回任何结果来执行某些操作。
const activeFirstSlide = $('.slider.first-slide.active');
if (activeFirstSlide.length) {
// Found an element
$('.swiper').css('height', '100vh')
}
else {
// No active first-slide
$('.swiper').css('height', 'auto')
}
推荐阅读
- vb.net - 随机化列表中的字符串
- java - 处理清除缓存应用程序在 Asynctask 方法中出现错误
- extractor - 其用户无法更改安装路径的文件提取器
- spring - spring 配置类的构造函数注入
- javascript - 如何显示从 API 调用获取的数据,这是一个二维数组
- python - 找不到满足要求 pip 的版本(来自版本:)没有找到 pip 的匹配分布
- datetime - 将长度为 8 的字符串转换为 *EUR 日期以进行比较
- java - Spring中基于权限的访问控制
- android - 哪些是在我的 Android 应用程序中从 Google Drive 下载 google 表格所需的服务器端权限集
- java - 带有动态列表的Android自定义下拉视图