2017-02-15 10 views
0

Я пытаюсь настроить iframe в активном экземпляре бликов, так как у меня может быть несколько случаев бликов на одной странице (конечная цель - обновить iframe, который был на слайде, который был просмотрен только после того, как пользователь выбрал другой слайд).Как использовать .each() с блики, чтобы влиять только на активный флажок flickity

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

Ниже приведен мой сценарий, в котором «.slideshow» является экземпляром мерцания, и я хочу иметь несколько на странице. Проблема связана с настройкой правильного «предыдущегоVideoContainer», чей родитель просто уволил событие «sett.flickity». Есть идеи?

$('.slideshow').each(function(index, element) { 
    // in case the first slide is a video 
    var previousVideoContainer = $(this).find('.slideshow-cell.is-selected iframe'); 

    $(this).on('settle.flickity', function() { 
     //reload iframe in previously viewed slide to "stop" the video 
     $(previousVideoContainer).each(function(ev) { 
      var video = this; 
      $($(video),parent.document).attr('src',$($(video),parent.document).attr('data-src')); 
     }); 
     var videoContainer = $('.carousel-cell.is-selected iframe'); 
     previousVideoContainer = videoContainer; 
    }); 
}); 

ответ

0

Я ответил на свой вопрос. Проблема заключалась в том, что я не использовал переменную «videoContainer» так же, как и в предыдущемVideoContainer. Flickity работал отлично. Вот пересмотренный код:

$('.slideshow').each(function(index, element) { 
    // in case the first slide is a video 
    var previousVideoContainer = $(this).find('.slideshow-cell.is-selected iframe'); 

    $(this).on('settle.flickity', function() { 
     //reload iframe in previously viewed slide to "stop" the video 
     $(previousVideoContainer).each(function(ev) { 
      var video = this; 
      $($(video),parent.document).attr('src',$($(video),parent.document).attr('data-src')); 
     }); 
     var videoContainer = $(this).find('.slideshow-cell.is-selected iframe'); 
     previousVideoContainer = videoContainer; 
    }); 
});