2012-02-27 9 views
0

Я следую этому примеру:доступ к атрибуту SRC изображения с JQuery

http://bxslider.com/examples/perform-action-transition-callback

Но с этим примером я могу получить номер индекса из текущего изображения.

У меня есть этот код:

$('#preview_images_gallery').bxSlider({ 
             onAfterSlide: function(totalSlides, currentSlide){ 
                          var src = $('currentSlide').attr('src'); 
                          $('.preview .bx-wrapper .bx-window').append('<p class="check">' + src); 
                         } 
             }); 

Как я могу получить атрибут Src текущего изображения?

Я пишу:

var src = $(currentSlide).attr('src'); 

но я получаю не определено!

Спасибо!

ответ

1
var source = $('img').attr('src'); 

Не проверен и не очень эффективен, но что-то подобное может работать, может потребоваться некоторая настройка.

var images = [], source=""; 
$('#slider1').bxSlider({ 
    pager: true, 
    onBeforeSlide: function(currentSlide, totalSlides){ 
     $('img', this).each(function() { 
      images.push(this); 
     }); 
     source = $(images[currentSlide]).attr('src'); 
    } 
}); 
alert(source); 

Если макросы правильно, это будет:

$('#slider1').bxSlider({ 
     pager: true, 
     onBeforeSlide: function(currentSlide, totalSlides, SlideObject){ 
      source = SlideObject.attr('src'); 
     } 
    }); 
    alert(source); 
+0

я получаю ** ** неопределенного для 'источника вара = $ (currentSlide) .attr ('ЦСИ') ; ' – hyperrjas

+0

currentSlide - это индекс currentSlide, а не ссылка на объект currentSlide. Это в (неиспользуемый в приведенном примере) 3-й параметр – Macros

+0

Спасибо @ Макрос вы можете написать пример Спасибо! – hyperrjas

1

, чтобы получить атрибут любого Jquery элемента, вы можете использовать это:

$('.selector').attr(attrName); 

в вашем случае, что-то вроде это ...

$('.slider1 .left').find('img').attr('src'); 

или даже больше к точке:

jQuery('#slider1').find('li.pager:nth-child(currentSlide)').attr('src'); 

вам придется найти самый элегантный способ самостоятельно, но все ответы, предполагающие с помощью .attr(attrName) правильно, вам просто нужно найти селектор правильный элемент.

5

Отъезд API

onBeforeSlide/onAfterSlide оба используют один и тот же подпись ниже, и вы можете получить доступ к объекту слайд в 3 параметра. Вы можете получить подробную информацию о содержании слайдов из этого

function(currentSlideNumber, totalSlideQty, currentSlideHtmlObject){ 
    // perform actions here 
} 
+0

@hyperrjas, если у вас есть только одно изображение на слайд, тогда '$ (currentSlideHtmlObject) .find ('img'). Attr ('src')' будет делать трюк! – VinayC

+0

Его правильные макросы: D. Спасибо – hyperrjas

0

Попробуйте это может быть поможет вам

document.getElementById("currentSlide_id").src; 



var src= $('currentSlide_id').attr('src') 
1

Это будет зависеть от вашего фактического HTML наценки, но при условии, что вы используете li элемент для создания слайда затем ниже, следует сделать трюк (Slider1 является контейнером ола/мкл ID)

$($('#slider1 li')[currentSlide - 1]).find('img').attr('src'); 

по существу, мы findind элемента скольжения (LI) с использованием индекса (с currentSlide - 1), а затем найти изображение в слайде, чтобы получить его исходный атрибут. Теперь, если у вас есть несколько изображений в слайде, то выше может не работать должным образом.

+0

Этот ответ действителен также: D. Спасибо! – hyperrjas

0

Как насчет

$('#sliderContainer').children().eq(currentSlide).find('img').attr('src') 

В связанном примере это будет

$('#slider1').children().eq(currentSlide).find('img').attr('src') 
Смежные вопросы