Jquery 正在加载函数。单击

Jquery 正在加载函数。单击,jquery,function,plyr.js,Jquery,Function,Plyr.js,我很难理解我需要把resizeBg()放在哪里使其工作。 例如,当用户单击按钮(btnNext)时,它会调用loadVideo,在事件准备就绪时,需要再次调用resizeBg()。但是不要给我看任何东西 和代码示例: var instance = Plyr.setup('.js-player', { controls: [], loop: { active: true }, debug: false, autoplay: true,

我很难理解我需要把
resizeBg()放在哪里使其工作。
例如,当用户单击按钮(
btnNext
)时,它会调用
loadVideo
,在事件准备就绪时,需要再次调用
resizeBg()。但是不要给我看任何东西

和代码示例:

var instance = Plyr.setup('.js-player', {
        controls: [],
        loop: { active: true },
        debug: false,
        autoplay: true,
        clickToPlay: false
    });
    var player = instance[0],
    index = 0,
    videoCount = video_list.length;
    player.source = {
        type: 'video',
        sources: [
          {
            src: video_list[index].src,
            provider: 'vimeo',
          }
        ]
    },
    video_title = $('.video-title').text(video_list[index].title),
    player.on('ready', function () {
        player.volume = 0;
        resizeBg();
    },
    btnPrev = $('.home-video-direction .prev').click(function (event) {
        event.preventDefault();
        if ((index - 1) > -1) {
            index--;
            loadVideo(index);
        } else {
            index = videoCount - 1;
            loadVideo(index);
        }
    }),
    btnNext = $('.home-video-direction .next').click(function (event) {
        event.preventDefault();
        if ((index + 1) < videoCount) {
            index++;
            loadVideo(index);
        } else {
            index = 0;
            loadVideo(index);
        }

    }),
    loadVideo = function (id) {
        player.source = {
            type: 'video',
            sources: [
              {
                src: video_list[id].src,
                provider: 'vimeo',
              }
            ]
        },
        video_title = $('.video-title').text(video_list[id].title),
        index = id;
        Plyr.setup();
        player.on('ready', function () {
            player.volume = 0;
            resizeBg();
        })
    });

}

var theWindow        = $(window),
    $bg              = $(".video-intro .plyr__video-wrapper"),
    aspectRatio      = 1.77777777778;

function resizeBg() {
    var w_H = theWindow.height(),
            w_W = theWindow.width(),
            sum = w_W / w_H;
    if ( (w_W / w_H) < aspectRatio ) {
        $bg
            .removeClass('bgwidth')
            .addClass('bgheight')
            .css({
                    width: (w_H * aspectRatio),
                    left: (w_W - (w_H * aspectRatio)) / 2
                });
    } else {
        $bg.removeClass('bgheight').addClass('bgwidth');
    }



theWindow.resize(resizeBg).trigger("resize");
var instance=Plyr.setup(“.js player”{
控件:[],
循环:{active:true},
调试:错误,
自动播放:对,
单击播放:false
});
var player=实例[0],
指数=0,
videoCount=视频列表长度;
player.source={
键入:“视频”,
资料来源:[
{
src:video_list[index].src,
提供者:“vimeo”,
}
]
},
视频标题=$('.video title').text(视频列表[index].title),
player.on('ready',function(){
player.volume=0;
resizeBg();
},
btnPrev=$('.home video direction.prev')。单击(函数(事件){
event.preventDefault();
如果((索引-1)>-1){
索引--;
加载视频(索引);
}否则{
索引=视频计数-1;
加载视频(索引);
}
}),
btnNext=$('.home video direction.next')。单击(函数(事件){
event.preventDefault();
如果((索引+1)
我发现了我犯的一个错误。基本上是DOM。我将这些变量从
函数中删除

var theWindow        = $(window),
    $bg              = $(".video-intro .plyr__video-wrapper"),
    aspectRatio      = 1.77777777778;
因为它们附加在prev DOM元素上。
$bg
存在,但插件在
上加载视频数据后添加的不是新DOM元素上的点。单击

所以这个函数需要如下所示

function resizeBg() {
        var theWindow        = $(window),
            $bg              = $(".video-intro .plyr__video-wrapper"),
            aspectRatio      = 1.77777777778,
            w_H = theWindow.height(),
            w_W = theWindow.width(),
            sum = w_W / w_H;

        if ( (w_W / w_H) < aspectRatio ) {
            $bg
                .removeClass('bgwidth')
                .addClass('bgheight')
                .css({
                        width: (w_H * aspectRatio),
                        left: (w_W - (w_H * aspectRatio)) / 2
                    });
        } else {
            $bg.removeClass('bgheight').addClass('bgwidth');
        }
函数resizeBg(){
var theWindow=$(窗口),
$bg=$(“.video intro.plyr\uuu video-wrapper”),
aspectRatio=1.778,
w_H=窗口高度(),
w_w=窗口宽度(),
总和=w_w/w_H;
如果((w_w/w_H)
我在链接到一堵文本墙时遇到了另一种错误:Hi@JanAndersen,是的,但我认为错误不会影响这个函数,因为在加载时,一个视频正在显示,并且还有一个函数给他的值(宽度和高度)。您有一个名为“plyr\uu video-embed”的类设置为高度:0,没有宽度规格。在Chrome inspect中将其手动设置为宽度:100%和高度:100%将显示视频并继续用于所有导航。我只是不知道您在哪里设置它。@JanAndersen
。plyr\uu video-embed
具有内联
宽度
左侧
。这是我的动态功能在
resizeBg()上
正在做这部分。同样的
div
通过检查aspectRatio(16:9)来获取类
.bghight
.bgwidth
。默认情况下,是的,该div的高度为
0;
,这是来自插件CSS。但当您单击“下一步”时,插件将重新生成所有标记并删除所有类和内联样式。这就是我需要的原因要在单击时再次调用函数
resizeBg()
,请获取该样式