Javascript Html不显示通过敲除可观察的值。

Javascript Html不显示通过敲除可观察的值。,javascript,html,dom,video,knockout.js,Javascript,Html,Dom,Video,Knockout.js,我正在开发一个视频播放器应用程序,我已经设置了各种视频播放器应用程序功能,如播放、暂停、前进和后退 我面临快进按钮的问题,当我点击快进按钮时,Html DOM不会显示第一个快进按钮,即1.5x,当我再次点击2次时,它会显示。。我需要帮助弄清楚,为什么它不会是1.5倍 这是我的html <!-- playback controls --> <div class="clearfix playback-set1"> <div cla

我正在开发一个视频播放器应用程序,我已经设置了各种视频播放器应用程序功能,如播放、暂停、前进和后退

我面临快进按钮的问题,当我点击快进按钮时,Html DOM不会显示第一个快进按钮,即1.5x,当我再次点击2次时,它会显示。。我需要帮助弄清楚,为什么它不会是1.5倍

这是我的html

<!-- playback controls -->
        <div class="clearfix playback-set1">
            <div class="pull-left">
                <div class="edit-btn-list-container">
                    <ul class="unstyled-list edit-btn-list clearfix">
                        <li style="margin-top: 8px; width: 45px; margin-left: 0;">
                            <a data-bind="click:play, event:{ended:playerOnEnded}" class="btn btn-alt btn-default" data-placement="bottom" data-toggle="tooltip" data-original-title="Play" style="font-size: 25px;"><span data-bind="if: !playerPlaying()"><i class="fa fa-play"></i></span><span data-bind="if: playerPlaying"><i class="fa fa-pause"></i></span></a>
                        </li>
                        <li><a data-bind="click:rewindClick" class="btn btn-alt btn-default" data-placement="bottom" data-toggle="tooltip" data-original-title="Rewind"><i class="fa fa-fast-backward fa-fw"></i><!-- ko if:intervalRewind() != null --><span data-bind="text:playbackRateIndicator"></span><!-- /ko --></a></li>
                        <li><a data-bind="event:{mousedown:function(){startstep('backward');}}" data-placement="bottom" class="btn btn-alt btn-default" data-toggle="tooltip" data-original-title="Step Backward"><i class="fa fa-step-backward fa-fw"></i></a></li>
                        <li><a data-bind="event:{mousedown:function(){startstep('forward');}}" data-placement="bottom" class="btn btn-alt btn-default" data-toggle="tooltip" data-original-title="Step Forward"><i class="fa fa fa-step-forward fa-fw"></i></a></li>
                        <li><a data-bind="click:fastForwardClick" class="btn btn-alt btn-default" data-placement="bottom" data-toggle="tooltip" data-original-title="Fast Forward"><!-- ko if:intervalRewind() == null --><span data-bind="text:playbackRateIndicator"></span><!-- /ko --><i class="fa fa-fast-forward fa-fw"></i></a></li>
                    </ul>
                </div>
            </div>

谢谢你的帮助。谢谢

在您发布的代码中,您从未为
playbackRateIndicator
设置值。在
开关中设置一个局部变量。在切换结束时,应将该值转换为可观察值:

playbackRateIndicator(newPlaybackRate);
我无法解释为什么会得到2x,而没有得到1.5x,因为我无法解释为什么会看到任何变化,因为你从未设置相关的可观测值

尝试创建一组问题代码始终是一个好主意,这是您可以编写的演示问题的最简单的提琴。首先,你经常会自己弄清楚到底发生了什么,但如果没有,它会给我们一些东西,让我们可以确定找到问题所在

我会这样做:
vm={
费率:[1,1.5,2,4,8],
playbackRateIndicator:ko.observable(),
间隔倒带:ko.可观察(空),
fastForwardClick:函数(){
console.log(“前进!”);
让currentRateIndex=vm.rates.indexOf(vm.playbackRateIndicator())+1;
如果(currentRateIndex>vm.rates.length-1){
currentRateIndex=vm.rates.length-1;
}
vm.playbackRateIndicator(vm.rates[currentRateIndex]);
}
};
ko.应用绑定(vm)
。未设置样式的列表{
列表样式:无;
}


看起来您从未设置过播放速率指示器
我应该更改什么?playbackRateIndicator是一个可观察的指示器!我在这里完全被搞糊涂了。好吧,下面是我试图识别问题的步骤,我放置了console.log(self.playbackrateindictor());在开关盒的末端,查看每次我按下快进键时打印的值!!下面是我得到的:LoggerVideo.js?version=1.0.0.856 null LoggerVideo.js?version=1.0.0.0:856 null LoggerVideo.js?version=1.0.0.0:856 2 LoggerVideo.js?version=1.0.0.0:856 4 LoggerVideo.js?version=1.0.0.0:856 8对于前两次点击,我得到的是null,而不是1.5和2,我应该用什么值初始化playbackRateIndicator?我无法调试这段代码你的问题中没有包括。有关可运行的代码段,请参阅我的更新答案。
playbackRateIndicator(newPlaybackRate);