我正在尝试在活动的活动实例中定位iframe,因为我可能在单个页面上有多个活动实例(最终目标是刷新用户选择了另一张幻灯片后刚刚查看过的幻灯片中的iframe )。
我可以将其用于单个幻灯片,但是在页面上有多个幻灯片时会遇到问题,因为它会刷新以前选择的所有iframe,而不仅仅是活动幻灯片中的iframe。
下面是我的脚本,其中“ .slideshow”是一个轻快的实例,我希望页面上可以有多个。问题与定位正确的“ previousVideoContainer”有关,后者的父母刚刚触发了“ settle.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;
});
});
最佳答案
我回答了我自己的问题。问题是,我没有像以前的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;
});
});
关于javascript - 如何将.each()与flickity一起使用以仅影响事件的flickity实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42257880/