Я пытаюсь включить / отключить звук своего видео. Но для начала, похоже, я не могу выбрать свое видео. Пробные примеры из руководств и ответы на похожие вопросы, но все они указывают на один и тот же способ выбора видео. Пожалуйста, посоветуйте, что здесь не так. Спасибо.
<!-- 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);
});
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Видео выбирается и помещается в переменную. Использование .muted не будет работать, и вам нужно использовать функцию jQuery .prop(), как я узнал в этот вопрос.
Это должно работать:
<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>
$(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'));
});
});
Чтобы увидеть это в действии с образцом видео, перейдите на эта ссылка.
Вы выбираете переменную. Просто
.mutedработать не будет.