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

切换父div的active状态后,如何还原原始图片?

解决点击div切换/还原图片的问题

你当前的代码每次点击都会直接把图片替换成data-img里的地址,没有保存原始图片的路径,所以没法实现还原效果。只需要先把原始图片地址存起来,再根据active类的状态切换图片即可,具体修改如下:

修改后的JavaScript代码

$('.egg').click(function(){
  var $this = $(this);
  var $img = $this.find(".card-image img");
  
  // 第一次点击时,把原始图片地址存到div的data属性里
  if (!$this.data('original-img')) {
    $this.data('original-img', $img.attr('src'));
  }
  
  $this.toggleClass("active");
  
  // 根据active类的状态切换图片
  if ($this.hasClass("active")) {
    $img.attr("src", $this.data('img'));
  } else {
    $img.attr("src", $this.data('original-img'));
  }
});

代码说明

  • 用$this缓存当前点击的div对象,减少重复DOM查询,提升性能;
  • 第一次点击时,将img的原始地址存入div的data-original-img属性中,后续随时可以调用;
  • 切换active类后,判断当前是否存在该类:有则显示data-img的图片,无则还原为原始图片。

你之前添加的return false无效,是因为这个问题和事件冒泡、默认行为无关,核心是缺少还原图片的逻辑和原始地址的存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:39:27