停止javascript函数
我想要的是:停止javascript函数,javascript,Javascript,我想要的是: 监控播放机在达到电影85%时执行功能-Ok 执行将一些数据插入Mysql表的PHP脚本-Ok 只执行一次(停止循环),因为我只希望Mysql表中有一行-Fail 我的代码: jwplayer().onTime(function(evt) { if (evt.position > ([evt.duration] * (85/100)) && x!=1) { loadXMLDoc(); var x = 1; } })
jwplayer().onTime(function(evt) {
if (evt.position > ([evt.duration] * (85/100)) && x!=1) {
loadXMLDoc();
var x = 1;
}
});
谢谢问题是x每次都会被重置
jwplayer().onTime(
(function () {
var check=true;
return function(evt) {
if (check && evt.position > ([evt.duration] * (85/100))) {
loadXMLDoc();
check=false;
}
}
})()
);
如果希望函数在每次页面加载时只运行一次,另一种方法是使函数自杀
(function (player) {
var checkAndLoad = function(evt) {
if (evt.position > (evt.duration * (85/100))) {
loadXMLDoc();
checkAndLoad=function(evt){};
}
};
player.onTime(function(evt) {checkAndLoad(evt);});
})(jwplayer());
您需要匿名包装器提供的额外间接寻址,因为onTime
获取其自己的事件侦听器副本,因此覆盖checkAndLoad
不会直接影响已注册的侦听器
如果希望侦听器多次运行,请注册其他侦听器,以便在适当的事件中还原checkAndLoad
(例如,用户返回到接近开始的位置)
(功能(播放器){
var timeListener;
功能检查和加载(evt){
如果(evt位置>(evt持续时间*(85/100))){
loadXMLDoc();
timeListener=函数(evt){};
}
}
timeListener=检查和加载;
player.onTime(函数(evt){timeListener(evt);});
player.onSeek(函数(evt){
如果(evt位置<(evt持续时间*(15/100))){
timeListener=检查和加载;
}
});
onComplete(函数(evt){timeListener=checkAndLoad;});
})(jwplayer());
最好是取消注册侦听器,但JW Player API目前不公开removeEventListener方法。您希望侦听器在每次页面加载时只运行一次,还是每次视频启动和播放时都运行一次?
(function (player) {
var timeListener;
function checkAndLoad(evt) {
if (evt.position > (evt.duration * (85/100))) {
loadXMLDoc();
timeListener=function(evt){};
}
}
timeListener = checkAndLoad;
player.onTime(function(evt) {timeListener(evt);});
player.onSeek(function(evt) {
if (evt.position < (evt.duration * (15/100))) {
timeListener=checkAndLoad;
}
});
player.onComplete(function (evt) {timeListener=checkAndLoad;});
})(jwplayer());