Невозможно выбрать видео

Я пытаюсь включить / отключить звук своего видео. Но для начала, похоже, я не могу выбрать свое видео. Пробные примеры из руководств и ответы на похожие вопросы, но все они указывают на один и тот же способ выбора видео. Пожалуйста, посоветуйте, что здесь не так. Спасибо.

<!-- HTML -->
<button id = "enableMute" onclick = "enableMute()" type = "button">Mute</button>
<button id = "disableMute" type = "button">Enable</button>
<button id = "checkMute" type = "button">Status</button><br>

<video id = "myVideo" width = "320" height = "176" autoplay loop muted>
    <source src = "video/trailer.mp4" type = "video/mp4">
    Your browser does not support HTML5 video.
</video>

<!-- JS -->
$(function() {
    // seems not being selected. Tried without hash and same result. 
    var vid = $("#myVideo"); 

    //alert works but clearly nothing happening with mute controls
    $("#enableMute").click(function(){
        alert("enableMute");
        vid.muted = true;
        vid.volume = 1.0;
    });

    //alert works but clearly nothing happening with mute controls
    $("#disableMute").click(function(){
        alert("disableMute");
        vid.muted = false;
        vid.volume = 1.0;
    });

    //if i click this button first, the alert is "alert undefined"
    $("#checkMute").click(function(){
        alert('alert: ' + vid.muted); 
    });
}); 

Вы выбираете переменную. Просто .muted работать не будет.

Aezign Space 14.10.2018 01:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
1
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Видео выбирается и помещается в переменную. Использование .muted не будет работать, и вам нужно использовать функцию jQuery .prop(), как я узнал в этот вопрос. Это должно работать:

HTML

<button id = "enableMute" onclick = "enableMute()" type = "button">Mute</button>
<button id = "disableMute" type = "button">Enable</button>
<button id = "checkMute" type = "button">Status</button><br>

<video id = "myVideo" width = "320" height = "176" autoplay loop muted>
    <source src = "video/trailer.mp4" type = "video/mp4">
    Your browser does not support HTML5 video.
</video>

JavaScript

$(function() {
  // Video is being selected
  var vid = $("#myVideo");

  $("#enableMute").click(function() {
    alert("enableMute");
    vid.prop('muted', true);
    vid.prop('volume', 1.0);
  });

  $("#disableMute").click(function() {
    alert("disableMute");
    vid.prop('muted', false);
    vid.prop('volume', 1.0);
  });

  $("#checkMute").click(function() {
    alert('alert: ' + vid.prop('muted'));
  });
});

Чтобы увидеть это в действии с образцом видео, перейдите на эта ссылка.

Другие вопросы по теме