javascript - 使用过滤器从数组中删除悬停的项目
问题描述
我想为.inactive
数组中的每个元素添加一个类,不包括mouseover
触发事件的元素。我想用这个filter
函数来做这个,但是,我不确定如何.item
从items
. 目前,所有人items
都在.inactive
为他们添加课程
const items = document.querySelectorAll('.item');
[...items].forEach(link => {
link.addEventListener('mouseover', function() {
console.log(link)
const inactives = [...items].filter(item => link)
inactives.forEach(inactive => {
inactive.classList.add('inactive')
});
});
link.addEventListener('mouseout', function() {
[...items].forEach(item => {
item.classList.remove('inactive')
});
});
});
.item.inactive {
opacity: 0.5;
}
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
<div class="item">Item 7</div>
解决方案
您必须通过与当前链接进行比较来修改您的过滤器:
const inactives = [...items].filter(item => item !== link)
我还会将该inactive
类添加到所有链接以开始。
为简化起见,您可以简单地将inactive
类添加到所有项目上mouseout
,然后在悬停项目上将其删除mouseover
。这样,您就不需要过滤链接。
const items = document.querySelectorAll('.item');
[...items].forEach(link => {
link.classList.add('inactive');
link.addEventListener('mouseover', function() {
link.classList.remove('inactive');
});
link.addEventListener('mouseout', function() {
[...items].forEach(item => {
item.classList.add('inactive');
});
});
});
.item.inactive {
opacity: 0.5;
}
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
<div class="item">Item 7</div>
推荐阅读
- android - 错误:找不到模块 'E:\my-project\android\undefined'
- python - 批处理文件错误 (PYTHON) - 原始错误为:导入 _multiarray_umath 时 DLL 加载失败:找不到指定的模块
- qt - 如何在 QML 中使用 MapPolyline 在任意时间后使路径消失?
- python - 如何检查列表中的项目是否在 Python 中的字符串中?
- java - 使用 DSS(CMS 容器)确保 LTV 验证
- python - 如何检测我在电报上的消息是否已使用 Telethon 阅读?
- c# - 运行我的脚本时不会加载 XAML WPF 表单
- python - azure python 函数在 vscode 本地运行,但不在 azure PAYG functon 应用程序中运行。httpRequest.headers["referer"] 有问题吗?
- java - 找不到 SpringBoot CrudRepository
- arrays - Lua 中的多维表