2017-04-24 1 views
-5

simple page avec la vidéo HTML5 et en essayant d'éviter la transmission rapide:jQuery addEventListener pas pris en charge

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; 
     } 
    }); 

Dans ma page _Layout J'ai:

<!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;" /> 

Je suis en utilisant tout ce que j'ai trouvé la recherche, mais ça me donne toujours l'erreur. J'utilise jQuery 3.1.1.

+0

Utilisez 'on()' de ** jQuery ** ou 'document.getElementById ('divVideo) .addEventListener'. – Tushar

+0

Que dit l'erreur? – zer00ne

+0

Jquery n'est pas JavaScript, mais un ensemble d'outils construits en JavaScript. Vous ne pouvez pas utiliser les API JavaScript natives avec des objets jquery (sans en sélectionner les nœuds bruts). Utilisez jQuery au complet ou les API natives jusqu'au bout. Mélanger et assortir est une recette pour la douleur et les larmes. – ste2425

Répondre

1

Vous devez utiliser on() si vous utilisez jQuery,

Et pour seeking et currentTime vous devez utiliser [0] pour accéder à ces propriétés (So Javascript version est meilleure, si vous souhaitez accéder aux propriétés de l'élément directement .)

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; 
    } 
}); 

Sans jQuery, si vous voulez utiliser addEventListener puis essayez d'utiliser getElementById() comme,

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; 
    } 
});