2016-05-21 15 views
1

Ich arbeite an SimpleWebRTC. Wenn neue Personen einem Raum beitreten, wird ein neues Videoelement hinzugefügt. Jetzt muss ich klicke auf irgendeines der Videoelemente. Also schreibe ich den folgenden CodejQuery click() für Videoelement

$('video').click(function(e) { 
     console.log('clicked'); 

     e.preventDefault() 
}); 

Offensichtlich war der Block innerhalb von jQuery Dokument bereit. Aber ich sehe nichts auf der Konsole. Das Seltsame ist, wenn ich den Code oben in der Konsole des Browsers einfüge, funktioniert das wie erwartet.

Ich brauche Ihre Richtlinie, um das Problem zu lösen.

Danke.

+0

Haben Sie versucht, Ihren Code innerhalb der webrtcs innit Funktion auszuführen? 'webrtc.on ('readyToCall', function() {...}' – Aer0

+1

'$ (selector) .click()' fügt den Click-Event-Handler nur zu den bereits auf der Seite vorhandenen Elementen hinzu ('$ (document) .on ('click', 'video', func)') Es gibt schon viele Betrüger, lass mich [eins] finden (http://stackoverflow.com/questions/8110934/direct- vs-delegated-jquery-on). – Kaiido

Antwort

1

Zuerst: Definieren Sie eine Klasse für das Video-Tag. Zum Beispiel: .chat wie folgt aus:

<video class="chat" /> 

und benutzen Sie diesen Code:

$('video.chat').on('click', function (e) { 
    console.log(this); 
}); 

oder:

$(document).on('click', 'video.chat', function (e) { 
    console.log(this); 
}); 

Ich hoffe, dass es Ihnen hilft.

+0

Letzte funktionierte. Ich bin immer noch verwirrt warum ** $ ('video.chat'). auf ('click', function (e) { ** funktioniert nicht, aber ** $ (Dokument) .on ('klick', 'video.chat', Funktion (e) {**. – IFightCode

0

versuchen, eine ID, um das Video-Element zu geben, damit Ihr Skript

$('#video').click(function(e) { 
     console.log('clicked'); 

     e.preventDefault() 
}); 

sein sollte, so sollte es den Text „geklickt“ auf der Konsole zeigen, aber ich bin nicht sicher, es wird passieren mehr

+0

Nein, hat nicht funktioniert. – IFightCode