vimeo Player 仅第一次绑定事件

Posted

技术标签:

【中文标题】vimeo Player 仅第一次绑定事件【英文标题】:vimeo Player only binds event the first time 【发布时间】:2020-10-20 23:39:56 【问题描述】:

我有一个页面,一开始就为播放器保留了 iframe,下面有一个视频列表。

当您单击其中一个视频时,它会使用 js 函数加载到顶部的“播放器”上,相同的函数会创建 vimeo.Player 对象,然后绑定一个 on(timeupdate),当视频点击率达到 90%。

问题:第一次选择视频时,一切正常,但当您选择另一个视频时,它要么不添加监听器,要么不创建播放器。

顺序是这样的:function aux -> ver() - 主要是在 iframe id 上显示内容和 src 更新 -> 在最后创建新的 Vimeo.Player

 function aux(element) 

        var player = ver(element),
            cod = element.id;
    
        console.log('code: ' + cod);
        player.on('timeupdate', function(data) 
            console.log('upd');
            if (data.percent > 0.9) 
                console.log('90');
                $.ajax(
                    type: "POST",
                    url: "ajax.markvideo.php",
                    data: 
                        code: cod,
                        email: <?php echo '"' . $_SESSION['email'] . '"' ?>
                    
                ).done(function(msg) 
                    player.off('timeupdate');
                );
            
        );
    

我尝试通过 textcontent 或子项删除来清空 iframe,因为这似乎是唯一发生变化的事情,但他们都没有做任何事情。

【问题讨论】:

什么时候调用aux函数? 列表中的每个视频都是 onclick='aux(this)' 【参考方案1】:

使用 api loadVideo() 而不是直接更改 iframe src 来完成这项工作。

【讨论】:

以上是关于vimeo Player 仅第一次绑定事件的主要内容,如果未能解决你的问题,请参考以下文章

Vimeo Player API 提示点事件:未捕获类型错误:时间必须是数字

解决pjax重复加载js导致事件重复绑定的问题

摇杆控制角色移动

office DocumentBeforeSave事件仅在几秒钟内绑定后才能工作

jquery中click事件的累加绑定,点击一次,执行多次

解决pjax重复绑定