You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单Exit按钮实现关闭任意播放中Player的功能修复请求

修复单个Exit按钮关闭任意播放状态Player的问题

需求与当前问题

  • 页面包含3个Player组件,点击任意Play按钮后,对应Player进入播放状态(添加active类)
  • 页面中的单个Exit按钮需要关闭任意处于播放状态的Player
  • 现存问题:removePlayerHandler函数仅能关闭第一个.wrap下的Player,无法实现预期功能

问题根源

原函数中使用document.querySelector('.wrap')只会获取页面中第一个匹配的.wrap元素,因此只能操作第一个Player,无法定位到其他处于播放状态的Player。

修复方案

修改removePlayerHandler函数,直接定位到带有active类的Player容器,移除该类即可关闭播放状态:

const removePlayerHandler = () => {
  // 直接筛选出处于播放状态的Player容器
  const activePlayer = document.querySelector('.wrap.active');
  if (activePlayer) {
    activePlayer.classList.remove('active');
  }
};

完整修复后的JavaScript代码

const playBtns = document.querySelectorAll('.play');
const exitBtn = document.querySelector('.exit');

const playHandler = (e) => {
  const wrap = e.target.closest('.wrap');
  wrap.classList.add('active');
};

const removePlayerHandler = () => {
  const activePlayer = document.querySelector('.wrap.active');
  if (activePlayer) {
    activePlayer.classList.remove('active');
  }
};

playBtns.forEach(btn => btn.addEventListener('click', playHandler));
exitBtn.addEventListener('click', removePlayerHandler);

说明

  • 使用document.querySelector('.wrap.active')可以精准定位当前处于播放状态的Player容器
  • 增加if (activePlayer)判断,避免在没有播放状态Player时执行无效操作

内容的提问来源于stack exchange,提问作者user17631451

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:20:33