2017-04-24 107 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; 
    } 
});