javascript - 事件委托(delegate)点击缩略图不显示主图像

标签 javascript html event-delegation

我尝试创建缩略图,单击后会显示在主图像中。我已经测试了代码,一切似乎都井井有条,但是单击缩略图时未显示主要图像。 Chrome 中显示 404 错误消息。我知道文件路径是正确的,因为当我删除 preventDefault() 时,链接会显示包含图像的文件 ?

我已经玩了一段时间了。我没有看到的代码中是否有错误或我没有考虑的某些操作。我是 JavaScript 的新手。

    <img id="viewer" src="images/motorbike-girl.jpg" width='450px' />
    <div id='thumbs'>
       <a href='images/chicks.jpg'><img src='images/chicks-thumb.jpg'/></a>
       <a href='images/motorbike-girl.jpg'><img src='images/motorbike-girl-thumb.jpg'/></a>
       <a href='images/yamaha.jpg'><img src='images/yamaha-thumb.PNG' /></a>
    </div>

 var thumbs = document.getElementById('thumbs');
 var img = document.getElementById('viewer');

 thumbs.onclick = function(event) {

   var target = event.target;

   while(target != thumbs) {

    if(target.nodeName == 'A') {
      img.src = this.href;
      event.preventDefault();
    }
     target = target.parentNode;

  }
}

最佳答案

这一行:

img.src = this.href;

应该是:

img.src = target.href;

一旦找到 A 节点并设置图像源,您还应该break 退出循环。

关于javascript - 事件委托(delegate)点击缩略图不显示主图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762268/

相关文章:

javascript - $(item).load() 脚本中断(仅在 IE11 中),适用于开发人员工具

javascript - 使用 html 按钮运行 python 脚本

javascript - 未启用 Javascript 时的替代 anchor 标记

javascript - 为什么当我创建 10,000 个元素时,内存使用量没有增长?

javascript - 事件委托(delegate): can someone explain me this JavaScript code?

Javascript setInterval 函数,根据条件转义

javascript - 为什么此代码出现未捕获的类型错误

javascript - Home 组件仅在刷新时加载(而不是在初始加载时),竞争条件?

jquery - 在 jQuery 验证插件中自定义事件委托(delegate)

jQuery on event 不适用于 future 的选择器