jquery 图片库无法正常工作

标签 jquery image-gallery

我正在尝试创建一个简单的照片库,其中一张照片很大,底部还有缩略图,单击时会变成那张大照片。画廊位于单独的模式窗口中。我的代码仅适用于第一个模式窗口。 事实上这是我第一次使用jquery。我什至找不到如何使用console.log来检查问题出在哪里。

HTML:

  <div class="modal_content">
        <div class="gallery">
            <img id="big" src="foto/20210322_100211.jpg">
        
            <div id="thumbnails">
                <a href="foto/20210218_135910.jpg"><img src="foto/resized/20210218_135910 small.jpg"></a>
                <a href="foto/20210322_100211.jpg"><img src="foto/resized/20210322_100211 small.jpg"></a>
                <a href="foto/20210322_153418.jpg"><img src="foto/resized/20210322_153418 small.jpg"></a>
            </div> 
        </div>
         <!--other content-->
    </div>
    
    <div class="modal_content">
        <div class="gallery">
            <img id="big" src="foto/20210322_153418.jpg">
        
            <div id="thumbnails">
                <a href="foto/20210218_135910.jpg"><img src="foto/resized/20210218_135910 small.jpg"></a>
                <a href="foto/20210322_100211.jpg"><img src="foto/resized/20210322_100211 small.jpg"></a>
                <a href="foto/20210322_153418.jpg"><img src="foto/resized/20210322_153418 small.jpg"></a>
            </div> 
        </div>
         <!--other content-->
    </div>

jQuery:

   $("#thumbnails a").on("click", function (e) {
      e.preventDefault();
    
      $("#big").attr("src", $(this).attr("href"));
    });

最佳答案

id 必须是 uniq 以避免出现问题..

删除 id="big"并将 id="thumbnails"替换为 class="thumbnails"

$(".thumbnails a").on("click", function(e) {
  e.preventDefault();

  $(this).closest(".gallery").find("img").first().attr("src", $(this).attr("href"));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="modal_content">
  <div class="gallery">
    <img src="foto/20210322_100211.jpg">

    <div class="thumbnails">
      <a href="foto/20210218_135910.jpg"><img src="foto/resized/20210218_135910 small.jpg"></a>
      <a href="foto/20210322_100211.jpg"><img src="foto/resized/20210322_100211 small.jpg"></a>
      <a href="foto/20210322_153418.jpg"><img src="foto/resized/20210322_153418 small.jpg"></a>
    </div>
  </div>
  <!--other content-->
</div>

<div class="modal_content">
  <div class="gallery">
    <img src="foto/20210322_153418.jpg">

    <div class="thumbnails">
      <a href="foto/20210218_135910.jpg"><img src="foto/resized/20210218_135910 small.jpg"></a>
      <a href="foto/20210322_100211.jpg"><img src="foto/resized/20210322_100211 small.jpg"></a>
      <a href="foto/20210322_153418.jpg"><img src="foto/resized/20210322_153418 small.jpg"></a>
    </div>
  </div>
  <!--other content-->
</div>

说明:

$(this).closest(".gallery") 表示查找第一个具有类 gallery 的父级

find("img").first() 表示查找带有标签 img 的子项并选择第一个


如果将 id="big" 替换为 class="big"

你也可以写:

$(".thumbnails a").on("click", function(e) {
  e.preventDefault();

  $(this).closest(".gallery").find("img.big").attr("src", $(this).attr("href"));
});

关于jquery 图片库无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67033433/

相关文章:

javascript - 延迟链接点击

android - 在 Android 中获取 Gallery 文件夹的路径

html - 使图片行扩展以适应可用空间

html - css 图像调整大小响应

android - 如何将选定的 Uri 图片保存到可绘制对象?

javascript - jquery .ajax 总是返回错误-数据被添加到数据库

javascript - 淡入/淡出 div 中的文本

android - 为什么在 startActivityForResult 之后调用 oncreate 方法?

java - 如何将servlet的json输出发送到jsp?

PHP:从数据库获取数据以提供 JQuery 图表