这是情况。我有一个允许用户上传视频的项目。每当您单击视频时,都会弹出Bootstrap-Modal,并且视频自动开始播放。现在,我还实现了单击视频的操作,该操作被视为观看次数,因为单击视频时它会自动开始。现在这是我搞砸的地方,打开模态时对视图进行计数,这不是我想要的,我希望在单击视频时对视图进行计数。我将在下面显示您的代码。有人可以帮我解决这个问题吗?
//Video
<video class="video1" id="cx" preload="auto" align="middle" data-
toggle="modal" data-target="#mymodal" data-user-id="{{$usero->id}}"
data-video-src="{{$usero->intro_video}}"
data-video-views="{{$usero->clicks}}" style="
cursor:pointer;"><source src="{{$usero->intro_video}}#t=15" alt="Video
Unavailable" id="" ></source>
//Ajax request
$('#mymodal').on('show.bs.modal show', function (event) {
var button = $(event.relatedTarget);
var user_id = button.data('user-id') ;
var video_src = button.data('video-src');
var video_views = button.data('video-views');
var modal = $(this);
modal.find('#video_source').attr('src', video_src);
modal.find('#video_views').text(video_views);
// send ajax request to increment video count
$.ajax({
method: 'GET',
url: 'getmsg',
dataType: "json",
contentType: "application/json",
data : {
requested_id: user_id
},
success: function(data){
}
});
})
答案 0 :(得分:0)
从您提供的代码示例中,我想您的模态中还有另一个视频标记,您正在show.bs.modal事件上更新其src属性。 如果是这种情况,则应为该视频元素提供一个ID(例如video2),然后您可以对此调用onplay事件,并应将ajax代码放入该事件列表中,就像这样
$('#video2').onplay(function(){
$.ajax({
method: 'GET',
url: 'getmsg',
dataType: "json",
contentType: "application/json",
data : {
requested_id: user_id
},
success: function(data){
}
});
});.
此外,如果需要,您可以从ajax请求的成功处理程序更新视图计数。
希望这会有所帮助。