jQuery обновляет заголовок основного изображения с заголовком большого пальца при клике

0

Я пытаюсь загрузить заголовок данных изображений большого пальца на событие клика, а затем обновлять заголовок данных основного изображения, когда основное изображение изменено для изображения большого пальца. Кажется, вы не можете получить заголовок данных для обновления с изменением изображения.

    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>
Теги:
image

1 ответ

0

Я не уверен, что this.data вернется. Но, как правило, если вы хотите, чтобы избежать путаницы между загрузкой значения из элемента data- атрибута и JQuery данные объекта/вещь. Попробуйте явно называть $(this).attr("data-caption")

что может поставить вас в правильном направлении (не проверял его):

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню