2016-10-25 8 views
0

Fiddle: https://jsfiddle.net/rg2LLvy1/ Он почти работает, однако при нажатии на любое изображение проходит в атрибуте видео-видео первого видео, вместо того, чтобы передавать «правильные» данные -видео, связанное для каждого изображения. Например. Если вы нажмете на видео Cats, iframe воспроизводит видео в формате Soccer. Кажется, я где-то пропустил «это»? Спасибо!Щелчок по изображению для замены iframe src передает неправильный атрибут данных

$('img.img-youtube').parent().click(function(){ 
video = '<iframe src="'+ $('img.img-youtube').attr('data-video') +'"></iframe>'; 
    $(this).parent().replaceWith(video); 
}); 
+1

Сейчас это работает: https://jsfiddle.net/rg2LLvy1/1/ –

+0

Спасибо @Offir Pe'er! Если вы оставите это как отдельный ответ, я могу отметить его как решение :) – Jake

ответ

1

Вот рабочий Working Demo.

$('img.img-youtube').parent().click(function(){ 
    video = '<iframe src="'+ $(this).find('img.img-youtube').data('video') +'"></iframe>'; 
    $(this).parent().replaceWith(video); 
}); 

Проблема заключалась в том, что ваш селектор $('img.img-youtube').attr('data-video') дал вам первое значение, потому что вы имели 2 результаты для этого селектора, и именно поэтому вы должны были добавить this так будет специфичны для изображения, которое вы щелкнули.

Также при использовании JQuery вы можете использовать data selector вместо attr('data-video'), это просто облегчает жизнь.

0
$('img.img-youtube').parent().click(function(e){ 
console.log($(this).find("img").attr('data-video')); 
    video = '<iframe src="'+ $(this).find("img").attr('data-video') +'"></iframe>'; 
    $(this).parent().replaceWith(video); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^