这是我的代码:
jwplayer("mySingleVideoWrapper").onTime(function (event) {
jQuery("#getCurrentPositionOfVideo").val(event.position);
var videoLength = jwplayer('mySingleVideoWrapper').getDuration();
jQuery("#getWholeDuration").val(videoLength);
var totalSec = videoLength;
var finalNumber = (totalSec*30) / 100;
if (event.position > finalNumber) {
jQuery("#watchedElapsedCount").val('1');
var videoViewsCount = jQuery("#watchedElapsedCount").val();
var currentPostId = jQuery("#currentPostId").val();
var json = '{"videoViewsCount" : "'+ videoViewsCount +'", "currentPostId" : "'+ currentPostId +'"}';
var getSiteBaseUrl = jQuery('#getSiteBaseUrl').val();
var ajaxurl = getSiteBaseUrl+"/wp-admin/admin-ajax.php";
jQuery.ajax({
url: ajaxurl,
type:"POST",
dataType: "json",
data:{
action: "elapsedDurationPercentage",
data: json
},
success:function(data){
}
});
}
});
我正在使用wordpress和JW Player 7 javascript版本以及用于检测视频视图(当用户观看至少30%的视频时)我正在调用ajax并且在'elapsedDurationPercentage'操作中我正在添加自定义字段和相应的值和下次更新。
现在在onTime()函数内部,我的ajax请求多次调用re事件位置。如何在此函数内只调用一次ajax?
答案 0 :(得分:2)
var flag = 0;
jwplayer("mySingleVideoWrapper").onTime(function (event) {
if(flag == 0){
jQuery("#getCurrentPositionOfVideo").val(event.position);
var videoLength = jwplayer('mySingleVideoWrapper').getDuration();
jQuery("#getWholeDuration").val(videoLength);
var totalSec = videoLength;
var finalNumber = (totalSec*30) / 100;
if (event.position > finalNumber) {
jQuery("#watchedElapsedCount").val('1');
var videoViewsCount = jQuery("#watchedElapsedCount").val();
var currentPostId = jQuery("#currentPostId").val();
var json = '{"videoViewsCount" : "'+ videoViewsCount +'", "currentPostId" : "'+ currentPostId +'"}';
var getSiteBaseUrl = jQuery('#getSiteBaseUrl').val();
var ajaxurl = getSiteBaseUrl+"/wp-admin/admin-ajax.php";
if(jQuery("#watchedElapsedCount").val() == '1'){
flag = 1;
var xhr = jQuery.ajax({
url: ajaxurl,
type:"POST",
dataType: "json",
data:{
action: "elapsedDurationPercentage",
data: json
},
success:function(data){
flag = 1;
return flag;
}
});
}
}
}
});