javascript - 如何正确应用KO绑定(bind)下面的例子

标签 javascript html css data-binding knockout.js

基本上,我在 KO 中有 viewModel 具有 2 个值的数组,我需要在 main 时更改元素 ( <a> ) 的 css 类属性正在单击元素(当第一个 li>a "Val1" 单击时,<main class="stl1">... 依此类推)。奇怪的是,<main> 没有任何反应:

<script>
        var mainViewModel = function () {
            var self = this;

            self.classArr = ['stl1', 'stl2'];
            self.cssUsed = ko.observable(0);

            self.getClass = function ( data, event ) {
                var dat = event.target.value;
                self.cssUsed = self.classArr[dat];
                console.log( dat + ' : ' + self.cssUsed );
            }

        }
        ko.applyBindings( new mainViewModel() );
</script>    

<div class='page'>
    <header>
       <nav>
         <ul >
           <li><a href="#" data-bind="value: 0, click: getClass">Val1</a></li>
           <li><a href="#" data-bind="value: 1, click: getClass">Val2</a></li>
         </ul>

      </nav>
   </header>

  <div id='maincontent'>
          <main data-bind="css: cssUsed" >
              <div class="center"></div>
          </main>
  </div>
</div>

最佳答案

你几乎是对的。问题是您以错误的方式分配了值(value)。而不是

self.cssUsed = self.classArr[dat];

尝试

self.cssUsed(self.classArr[dat]);

检查一下 here

关于javascript - 如何正确应用KO绑定(bind)下面的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045017/

相关文章:

javascript - 如何通过滑动范围 slider 来改变图像?

html - Firefox 中的站点标题问题

javascript - 每 3 天倒数计时器

java - 如何添加指向在 Android 应用程序中创建的此电子邮件的超链接?

javascript - 不同的 CSS 表取决于屏幕尺寸,使用 javascript

html - 将 div 元素与容器底部对齐

jquery - 链接在加载后保持粗体

javascript - Node.js 中的管道问题

javascript - CodeMirror 在使用自定义 css 行高粘贴时呈现错误

javascript - 如何在 JavaScript 中每天特定时间刷新一组代码