Я пытаюсь извлечь заголовок из текущего слайда (изображения), а затем добавить данные заголовка в div. Вот демонстрация слайдера nivo.

Я пытался использовать функцию afterChange в слайдере Nivo, но безуспешно.

afterChange: function(){
   $('#status .caption').data('nivo:vars').currentSlide.attr('title');
}
0
user1381806 30 Янв 2013 в 17:11

3 ответа

Лучший ответ

Я сделал это. Надеюсь, это кому-нибудь поможет.

  current_title = jQuery('#slider').data('nivo:vars').currentImage.attr('title');
  jQuery('#slider .caption').text(current_title);
2
user1381806 30 Янв 2013 в 14:26

Вы должны использовать что-то вроде этого: я ничего не сделал с Nivo, и я не уверен, что .data ('nivo: vars'). CurrentSlide.attr ('title') 'на самом деле существует ...

afterChange: function() {
    var title = $('#slider').data('nivo:vars').currentSlide.attr('title');
    $('#status .caption').html(title);
}
0
Martin 30 Янв 2013 в 13:35
var sliderSelector = '#slider'; // Replace with your slider selector
var index = 0; // You start with slide 0 as the first slide

controlNav: true, // This solution relies on this to work
$(sliderSelector).nivoSlider({
    afterChange: function() {
        index = $(sliderSelector + ' .nivo-controlNav .nivo-control').filter('.active').index();
        showCaption(sliderSelector, index);
    },
    afterLoad: function() {
        showCaption(sliderSelector, index);
    }
});

И функция showCaption

function showCaption(sliderSelector, index) {
    var title = $($(sliderSelector + ' img').get(index)).prop('title');
    if (title.length > 0) { // Determines if it has to show a caption
        var caption = $(sliderSelector + ' .nivo-caption').html(); // Gets the current caption
        console.log(caption);
    }
}
0
ieeehh 30 Янв 2013 в 14:32