【问题标题】:CSS not changing when changing class name更改类名时CSS不更改
【发布时间】:2013-03-21 23:44:52
【问题描述】:

我正在使用 HTML5 媒体 API 并坚持使用它的静音属性。我有这个静音按钮,当我点击它时,我想用它来静音和取消静音特定视频的音频。问题是,只要我将其静音,它就可以工作,但我无法取消静音。类和标题值被正确设置为适当的值,但音量或图标图像没有变化。这是我的 jsfiddle 代码http://jsfiddle.net/7AS3C/1/ 的链接,当我将代码上传到 jsfiddle 时,不会发生 CSS 问题。如果有人帮助我使用 javascript,我将不胜感激。

<div id="mediaplayer">
    <video id="media-video" controls>
        <source src='http://video.webmfiles.org/big-buck-bunny_trailer.webm' type='video/webm' controls>
    </video>
    <div>
        <div id="media-controls">
            <progress id="progress-bar" min="0" max="100" value="0"></progress>
            <button id='replay-button' class='replay' title='replay' onclick='replayMedia();'>Replay</button>
            <button id='play-pause-button' class='play' title='play' onclick='togglePlayPause();'>Play</button>
            <button id='stop-button' class='stop' title='stop' onclick='stopPlayer();'>Stop</button>
            <button id='volume-inc-button' class='volume-plus' title='increase volume' onclick='changeVolume("+");'>Increase volume</button>
            <button id='volume-dec-button' class='volume-minus' title='decrease volume' onclick='changeVolume("-");'>Decrease volume</button>
            <button id='mute-btn' class='mute' title='mute' onclick='toggleMute();'>Mute</button>
        </div>
    </div>
</div>

这是css

.unmute {
    width:45px;
    height:48px;
    background:url('mute.png');
    background-position: 0px 0px;
}
.mute {
    width:45px;
    height:48px;
    background:url('unmute.png');
    background-position: 0px 0px;
}

这是我的 javascript

muteBtn = document.getElementById('mute-btn');

function toggleMute() {
    if (player.muted = false) {
        changeButtonType(muteBtn, 'mute');
        player.muted = "true";
    } else if (player.muted = true) {
        changeButtonType(muteBtn, 'unmute');
        player.muted = "false";

    } else player.muted = "false";
}

function changeButtonType(buttonType, value) {
    buttonType.title = value;
    buttonType.innerHTML = value;
    buttonType.className = value;
}

【问题讨论】:

  • 您确定课程更改正确吗?听起来不像。有演示吗?
  • 抱歉,我的电脑上有。如果有人没有答案,请尝试将其上传到 JSFiddle。此外,类名已正确更改,我也使用相同的功能来更改其他类的类名,它们工作得很好。
  • 做一些日志记录 (console.log()) 以确定 changeButtonType() 是否真的在静音和取消静音事件上被触发。
  • 我已经完成了那个伙伴。那里一切都很好。我使用 chrome 检查是否还设置了类名和标题。它们实际上设置为正确的。
  • 我将错误的字符串传递给函数......这就是问题所在。谢谢你们的帮助。

标签: javascript css html media


【解决方案1】:

条件逻辑是赋值而不是比较

if (player.muted = false) {

应该是

if (player.muted === false) {

player.muted = "true"; 

应该是

player.muted = true;

假块也一样

【讨论】:

  • 我怎么会错过呢?这解决了问题,非常感谢。我想我应该好好看看我的代码。
  • 一开始你需要分配player.muted = false否则 player.muted 将是未定义的
  • 这是一个容易犯的错误.. 幸运的是 .net 警告你一些左手操作
猜你喜欢
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 2017-12-07
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2014-05-22
相关资源
最近更新 更多