2012-07-02 11 views
5

Sono nuovo di Javascript/jQuery e sto cercando di creare un pulsante di riproduzione per la riproduzione di video HTML5. Il mio codice finora:

//return a jQuery object 
var video = $('#myVideoTag'); 

//Play/Pause control clicked 

$('.btnPlay').on('click', function() { 
    if(video[0].paused) { 
     video[0].play(); 
    } 
    else { 
     video[0].pause(); 
    } 
    return false; 
}); 

Continuo a ricevere questo errore:

$(".btnPlay").on is not a function 
[Break On This Error] 

$('.btnPlay').on('click', function() { 

non posso per la vita di mia figura ciò che è sbagliato. Ho la classe .btnPlay correttamente definita nella pagina. Sto seguendo un tutorial che sembra utilizzare un metodo identico senza problemi. Qualche idea?

risposta

8

Il metodo on è stato introdotto in jQuery versione 1.7.

Penso che sia necessario aggiornare la libreria jQuery allo newest version.

In caso contrario, è possibile utilizzare bind:

$('.btnPlay').bind("click", function() { 
    // ... 
}); 

o il suo metodo di collegamento click:

$('.btnPlay').click(function() { 
    // ... 
}); 
0

Un'alternativa al metodo .on su versioni precedenti di JavaScript è .delegate. Si dovrebbe usare .delegate('.btnPlay', 'click', function(){...}) sull'elemento genitore per avere la stessa funzionalità

1

A partire dal jQuery 1.7, .delegate() è stata sostituita dal metodo .on(). Per le versioni precedenti, tuttavia, rimane il mezzo più efficace per utilizzare la delegazione dell'evento .delegate().

Un'altra alternativa è la .live() ma poiché la versione 1.7 è obsoleta. Gli utenti di versioni precedenti di jQuery dovrebbero utilizzare .delegate() preferibilmente a .live().