2016-06-25 1 views
0

Ich habe eine muted Video-Tag mit einer src. Ich bin in der Lage, das Video programmgesteuert zu deaktivieren, aber nicht, wenn ich die src gleichzeitig ändere (Reihenfolge irrelevant). Irgendwelche Ideen, warum das sein könnte? Hier ein Beispiel:Warum kann ich eine HTML-Eigenschaft nicht gleichzeitig mit src ändern?

setTimeout(function(){ 
 
\t // If you comment out this line and src doesn't change, it works. 
 
\t $('#video').prop('src', 'http://webm.land/media/1KM9.webm'); 
 

 
\t $('#video').prop('muted', false); 
 
}, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<video id="video" autoplay muted src="http://webm.land/media/KLNV.webm" width="400" height="200" />

+0

Aber wenn das erste Video nicht stummgeschaltet ist, ist auch das neue nicht stummgeschaltet. Und auch die Reihenfolge des Stummschaltens und Änderns von src scheint keinen Unterschied zu machen. Irgendwelche Gedanken darüber, wie man das löst? –

Antwort

3

setTimeout(function() { 
 
    $('#video').removeAttr('muted'); 
 
    $('#video').prop('src', 'http://webm.land/media/1KM9.webm'); 
 
    document.getElementById('video').muted = false; 
 
}, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<video id="video" autoplay muted src="http://webm.land/media/KLNV.webm" width="400" height="200" />

Es funktioniert!

+0

OP erwartet dies nicht. Er möchte es für das zweite Video "unmutieren" – Rayon

+0

@Rayon check out meine Bearbeitung –

+0

Hast du es getestet? Wir haben die Option, eine ausführbare Demo mit SO-Schnipsel zu erstellen ... – Rayon

-1

Versuche Entfernen muted Attribut .removeAttr(), .clone() original jQuery-Objekt, original <video> Element mit geklonten Elemente ersetzt mit .replaceWith()

setTimeout(function(video){ 
 
    video.replaceWith(video.clone().removeAttr("muted") 
 
    .prop("src", "http://webm.land/media/1KM9.webm")) \t 
 
}, 3000, $("#video"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<video id="video" autoplay muted src="http://webm.land/media/KLNV.webm" width="400" height="200" />

+0

"downvote" Beschreibung? – guest271314

+0

Ich bin nicht der Eine..Aber das funktioniert nicht .. _Tested! _ – Rayon

+0

@Rayon _ "Ich bin nicht der Eine..Aber das funktioniert nicht .. Getestet!" _? Siehe stacksnippets bei aktualisiertem Beitrag. Können Sie einen Link zu "jsfiddle" veröffentlichen, der "funktioniert nicht" zeigt? – guest271314

2

entfernen sowohl attribute und property"muted" aus dem Element als auch wenn Attribut entfernt wird, bleibt propertytrue!

setTimeout(function() { 
 
    $('#video').removeAttr('muted'); 
 
    console.log($('#video').prop('muted')); 
 
    $('#video').prop('muted', false); 
 
    $('#video').prop('src', 'http://webm.land/media/1KM9.webm'); 
 
}, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<video id="video" autoplay muted="muted" src="http://webm.land/media/KLNV.webm" width="400" height="200" />

+0

Danke Rayon! Während deine Antwort klarer ist, akzeptiere ich Cesars, weil er sie zuerst bekommen hat, aber ich schätze deine Hilfe. –

Verwandte Themen