2017-04-24 51 views
-5

与HTML5视频简单的页面,并试图阻止快速转发:的jQuery的addEventListener不支持

var vid = $("#divVideo"); 
    var suptime = 0; 
    vid.addEventListener('timeupdate', function(){ 
     if (!vid.seeking){ 
      suptime = vid.currentTime; 
     } 
    }); 
    vid.addEventListener('seeking', function(){ 
     var delta = vid.currentTime - suptime; 
     if (Math.abs(delta) > 0.01) { 
      vid.currentTime = suptime; 
     } 
    }); 

在我_layout的网页我有:

<!DOCTYPE html> 
    <html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
<meta name="viewport" content="width=device-width" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge;" /> 

所以我利用一切手段,我已经找到了搜索,但它仍然给我错误。我正在使用jQuery 3.1.1。

+0

使用** jQuery **或'document.getElementById('divVideo).addEventListener'的'on()'。 – Tushar

+0

错误说的是什么? – zer00ne

+0

Jquery不是JavaScript,而是一组使用JavaScript构建的工具。你不能使用jQuery对象的本地JavaScript API(不从中选择原始节点)。无论是一路使用jQuery,还是使用本地API。混合搭配是痛苦和流泪的秘诀。 – ste2425

回答

1

你需要的,如果你正在使用jQuery,

而获得seekingcurrentTime你需要使用[0]来访问这些属性(所以Javascript版本是更好的,当你想直接访问元素属性使用on() 。)

var vid = $("#divVideo"); 
var suptime = 0; 
vid.on('timeupdate', function(){ 
    if (!vid[0].seeking){ // to get seeking use [0], when using jquery object 
     suptime = vid[0].currentTime; 
    } 
}).on('seeking', function(){ // chaining is better to use here 
    var delta = vid[0].currentTime - suptime; 
    if (Math.abs(delta) > 0.01) { 
     vid[0].currentTime = suptime; 
    } 
}); 

没有jQuery的,如果你想使用addEventListener然后尝试使用getElementById()一样,

var vid = document.getElementById("divVideo"); 
var suptime = 0; 
vid.addEventListener('timeupdate', function(){ 
    if (!vid.seeking){ // directly seeking and currentTime are accessible 
     suptime = vid.currentTime; 
    } 
}); 
vid.addEventListener('seeking', function(){ 
    var delta = vid.currentTime - suptime; 
    if (Math.abs(delta) > 0.01) { 
     vid.currentTime = suptime; 
    } 
});