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

基于CSS和jQuery实现简单lightbox时点击图片总打开最后一张的问题求解

问题原因

你现有的jQuery选择器$(".lightbox")会选中页面中所有带lightbox类的元素,执行toggle()时所有灯箱都会切换显示状态。由于你给lightbox设置了fixed全屏定位,多个灯箱同时显示时,DOM结构中后添加的元素会默认堆叠在更早的元素上方,因此无论点击哪张图,你看到的都是最后添加的那张。

修复方案

仅需要修改你的jQuery逻辑,点击触发元素时仅操作当前触发元素内部对应的灯箱即可,修改后代码如下:

$(".trigger").click(function(){
  // 查找当前被点击的.trigger内部的.lightbox元素,仅切换它的显示状态
  $(this).find(".lightbox").toggle();
});

// 可选补充:点击灯箱背景时关闭灯箱
$(".lightbox").click(function(e){
  // 阻止事件冒泡到父级.trigger,避免重复触发点击事件
  e.stopPropagation();
  $(this).hide();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:45:03