javascript - jQuery 在单击事件上使用拇指图像标题更新主图像标题

标签 javascript jquery html css image

我正在尝试在单击事件时加载缩略图的数据标题,然后在主图像更改为缩略图时更新主图像数据标题。似乎无法让数据标题随着图像更改而更新。

    jQuery(document).ready(function() {
    jQuery('.thumbnail').on('click', function() {
        jQuery('#mainImage').hide();
        jQuery('#mainImageContainer').css('background-image', "url('images/loading.gif')");
        var i = jQuery('<img />').attr('src',this.href).attr('caption',this.data).load(function() {
            jQuery('#mainImage').attr('src', i.attr('src')).attr('caption', i.attr('caption'));
            jQuery('#mainImageContainer').css('background-image', 'none');
            jQuery('#mainImage').fadeIn();
            jQuery('.fancybox').attr('href', i.attr('src'));
            jQuery("a[href$='.jpg'],a[href$='.jpeg']").attr('rel', 'gallery').fancybox();
        });
        return false; 
    });

    jQuery('.fancybox').fancybox();

});

<div id="mainImageContainer">
    <a class="fancybox" href="main-image.jpg">
        <img id="mainImage" src="main-image.jpg" data-caption="main image caption" />
    </a>
</div>
<ul>
    <li>                            
        <a class="thumbnail" href="thumb-image-1.jpg">
            <img class="thumbImages" src="thumb-image-1.jpg" data-caption="thumb image 1 caption" />
        </a>
    </li>
    <li>
        <a class="thumbnail" href="thumb-image-2.jpg">
            <img class="thumbImages" src="thumb-image-2.jpg" data-caption="thumb image 2 caption" />
        </a>
    </li>
    <li>
        <a class="thumbnail" href="thumb-image-3.jpg">
            <img class="thumbImages" src="thumb-image-3.jpg" data-caption="thumb image 3 caption" />
        </a>
    </li>
</ul>

最佳答案

我不确定 this.data 会返回什么。但通常情况下,如果你想避免混淆从元素的 data- 属性和 jQuery 的 data 加载值之间的混淆。对象/事物。尝试显式调用 $(this).attr("data-caption")

这可能会让您朝着正确的方向前进(虽然还没有测试过):

var $this = $(this);
var captionValue = $this.attr("data-caption");
var i = jQuery('<img />').attr('src',this.href).attr('caption',captionValue);

关于javascript - jQuery 在单击事件上使用拇指图像标题更新主图像标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22392439/

相关文章:

javascript - 如何使用 slider 更改 anime.js 事件的速度(持续时间)?

jquery - 如何使用CSS3、jQuery、HTML制作图片队列效果?

javascript - 使用 js 和 jquery 添加文本链接

javascript - 文本在框外对齐的方框

php - 是否有适用于 PHP 或 JavaScript 的良好 JSON 格式化程序库?

javascript - ES6 - 同时产量和返回

javascript - Karma 测试,PhantomJS 错误 : Could not find module 'events'

javascript - Firefox 兼容输入过滤

jquery - 删除jquery中@符号后面的文本

c++ - 如何使用 C++ 从 HTML 中提取文本?