30

I'd like to make a mute/unmute button in jQuery. I've done some searching on Stackoverflow and this is what I managed to do so far:

$("video").prop('muted', true);

$("#mute-video").click( function (){
    if( $("video").prop('muted', true) )
    {
        $("video").prop('muted', false);
    }

    else {
    $("video").prop('muted', true);
    }

});

but for some reason it's only able to unmute, not to mute back.

Any idea what's wrong with the code?

oneday
  • 1,599
  • 5
  • 18
  • 29

1 Answers1

42

When you're doing if( $("video").prop('muted', true) ) you're both setting the property to true and then ask if it's true.

Changing the condition to if( $("video").prop('muted') ) solves the problem - Here's an example.

Also note this will work on all videos on a page so if you have more than one player it might get confusing.

Ronny
  • 4,295
  • 2
  • 24
  • 30
  • 1
    Ronny, big thnx, that worked! If it comes to "video", I used it as a temporary solution - now I checked with the video ID and it works as well. – oneday Feb 18 '14 at 11:43
  • 4
    I came across this post and shortened the code: `$("video").prop('muted', !$("video").prop('muted')))` – pasql Jun 01 '16 at 15:52