视频播放器Dplayer切换片源时绑定事件失效的解决方案

背景

在站点中使用视频播放器DPlayer时,可以实现弹幕,片源切换,倍速播放,API提供了很多的事件,不过在切换片源时,原来绑定的监测事件会失效(及不会在切换之前的基础上继续有效)

1)视频播放器初始化

var player = new DPlayer({    element: document.getElementById(‘video‘),    autoplay: false,    theme: ‘#FADFA3‘,    loop: false,    screenshot: false, //截屏    hotkey: false,    // logo: ‘/public/assets/images/server/favicon.ico‘,    video: {        quality: [{            name: ‘普清‘,            url: path1        },{            name: ‘高清‘,            url: path2        }, {            name: ‘超清‘,            url: path3        }],        defaultQuality: 0,        pic: ‘‘,        type: ‘auto‘    }});

2)绑定事件
initDplayer:function() {    //播放事件    player.video.current.ontimeupdate = function(){        var current_time = player.video.current.currentTime;        console.log(‘playing at ‘ + current_time)    }    //暂停事件    player.video.current.onpause = function() {    var current_time = player.video.current.currentTime;    console.log("paused at " + current_time);
    }        //拖动过程事件    player.video.current.onseeking = function() {        console.log("seeking at " + player.video.current.currentTime);    }    //拖动结束事件    player.video.current.onseeked = function() {        console.log("seek to " + player.video.current.currentTime);    }    //变更播放速率事件    player.video.current.onratechange = function() {        console.log("ratechange at " + player.video.current.currentTime);    }}

解决方案

通过为播放器切换片源按钮绑定点击事件,然后重新绑定事件即可继续有效原先绑定的事件作用

$("body").on(‘click‘,‘.dplayer-quality-item‘,function() {    initDplayer();})
时间: 2024-08-09 06:21:44

视频播放器Dplayer切换片源时绑定事件失效的解决方案的相关文章

iOS5 切换中文键盘时覆盖输入框的完美解决方案

iOS5 切换中文键盘时覆盖输入框的完美解决方案 原文:http://wangsheng2008love.blog.163.com/blog/static/782016892012631102714562/ 2012-07-31 22:42:43|  分类: iOS |  标签:ios5  中文键盘  遮盖  输入框  |举报|字号 订阅 众所周知,iOS5之前,iPhone上的键盘的高度是固定为216.0px高的,中文汉字的选择框是悬浮的,所以不少应用都将此高度来标注键盘的高度(包括米聊也是这

视频播放器DPlayer使用方法介绍

最近在项目开发中需要在Web页面中嵌入视频播放器,并且通过监听一些事件来记录访问者对于视频的一些操作,在此记录使用方法,方便查询使用: 1.在页面中加载库文件 <link rel="stylesheet" href="./assets/lib/dplayer/dist/DPlayer.min.css"/> //视频播放器对应样式文件<script src="../assets/lib/dplayer/dist/DPlayer.min.js

jquery绑定事件失效的情况(转)

原文地址:http://www.thinksaas.cn/group/topic/348453/ jQuery中文api地址:http://www.jquery123.com/api/ jQuery官网api地址:http://api.jquery.com/ 现在的web项目,不使用jquery的恐怕极少.但是在使用jquery时,也会发现一些异常的情况. 一般我们如下绑定点击等事件: <div class="music"> <ul> <li>01.

关于怎样用PHP及JS来动态加载html元素及加载的html代码绑定事件失效的解决方法!

首先编写好的html代码放入php文件里面设置请求头格式为text/html 然后呢我将用jquery来操作 先定义一个用了盛放代码的容器 $(function(){}) => window.onload .sn-header-bg 是我用来盛放代码的容器 我的php文件名是header.php放在data目录下! 执行以上代码完成后一个页头就出来了! 加载完成后我在header里面绑定了两个函数,但是全部失效了,原因是没找到对应的dom元素, 根本原因是我没加载完成之前这两个函数就已经执行去寻

jquery appaend元素中id绑定事件失效问题

1. 在jquery中append元素,如果该元素中有id值并且绑定事件,那么该id事件会失效,必须刷新一下才能使用. 2.解决办法: 举例:如果在一个<div class="title"></div>中,通过append添加一个id="demo"的按钮,常用的直接$("Selector").on("eventType",function(){})监听事件函数不起作用,例如该按钮的点击监听事件应该这样写

关于动态生成dom绑定事件失效的原因

之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: 1.事件失效的原因:(1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了 (2)同样,当你使用var aa = document.getElementsByTagName("动态生成的元素");来获取动态生成的元素的时候也是获取不到

ajax动态刷新的元素,导致绑定事件失效

jquery事件绑定有2种方式: 1,普通事件绑定: $('元素').click(function(){}); 2, 事件代理或者叫事件委托 $('#chatPanelList').on('click','.leftMsg .msgDiv .msgText .stionsList li .answerBtn',function(e) {}); 结: 如果动态生成的则无法绑定事件.你可以用事件委托来处理. 产考链接: https://blog.csdn.net/linsygod/article/d

ios移动端浏览器点击事件失效的解决方案

点击事件失效的原因可能是因为,你用了事件代理了, 比如这样 $(document).on("click",".fd",function(){ }) 这段代码在安卓机上是没有问题的,但是iso的自带浏览器和微信浏览器和其他浏览器都会失效,原因是ios规定,事件代理的元素只能是button元素其他一律不生效 想要解决这个问题,也很简单 1. $(document).on("click","button",function(){ }

jq dom不存在时绑定事件

$( "a.offsite" ).live( "click", function() { alert( "Goodbye!" ); // jQuery 1.3+ });//下面两个,第一个dom元素,不应该出现在第二个选择器中 $( document ).delegate( "a.offsite", "click", function() { alert( "Goodbye!" ); /