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

如何使用jQuery检测已移除元素?僵尸击杀游戏开发求助

用jQuery检测僵尸元素移除的实现方案

当然可以用jQuery实现元素移除的检测啦!针对你这款僵尸击杀游戏的场景,我给你两种实用的方案,你可以根据自己的代码习惯来选:

方案一:利用jQuery的remove()事件监听

jQuery的remove()方法在执行时会自动触发remove事件,我们可以通过事件委托来监听所有.zombie元素的移除动作,非常贴合你当前的代码逻辑:

步骤1:修改移除代码为jQuery方式

把你现有代码里的原生e.target.remove()替换成jQuery的移除方法:

plansza.addEventListener('click', function(e) {
  if (e.target.classList.contains('zombie')) {
    e.target.live--;
    if (e.target.live <= 0) {
      score += 10;
      // 改用jQuery的remove方法触发事件
      $(e.target).remove();
      document.querySelector('.score span').innerText = score;
    }
  }
});

步骤2:监听僵尸元素的移除事件

添加一段事件监听代码,就能在僵尸被移除时触发你需要的逻辑:

// 通过事件委托监听所有.zombie元素的移除
$(document).on('remove', '.zombie', function() {
  console.log('一只僵尸被消灭并移除了!');
  // 这里可以添加你需要的后续操作,比如播放击杀音效、刷新游戏统计等
});

方案二:用MutationObserver监听DOM变化(兼容原生移除)

如果你不想修改现有原生的remove()代码,也可以用原生的MutationObserver API(jQuery也能配合使用)来监听DOM树的变化,检测元素是否被移除:

// 创建观察者实例,配置回调函数
const zombieObserver = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    // 遍历所有被移除的节点,检查是否是僵尸元素
    mutation.removedNodes.forEach(function(node) {
      if (node.classList && node.classList.contains('zombie')) {
        console.log('检测到僵尸元素被移除:', node);
        // 执行你的自定义逻辑
      }
    });
  });
});

// 开始观察游戏容器plansza的子节点变化
zombieObserver.observe(plansza, {
  childList: true, // 只监听子节点的添加/移除
  subtree: false   // 如果僵尸嵌套在其他元素里,可改为true
});

这个方案的优势是不管你用原生JS还是jQuery移除元素,都能准确检测到,非常灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:55:07