【发布时间】:2013-01-29 20:18:48
【问题描述】:
我有一点 javascript:
function ViewModel() {
var self = this;
self.highlight = ko.observable(true);
}
ko.applyBindings(new ViewModel());
以及补充它的html:
<div data-bind="css: { highlighted: highlight }, click: highlight( !highlight() )">
random string
</div>
我想要达到的目标:
- 只有在 var highlight 为 true 时才会激活 CSS 类“highlighted”
- 点击 div 会切换 var highlight 的 bool 值
- 想要的结果:单击 div 以激活/停用其 css 类
我得到了什么:
- highlight 的初始值为
true,但 css 类开始停用(如果我将初始值更改为false,css 类被激活:似乎我以某种方式触发了点击绑定我还没有点击任何东西) - div 的 css 类不会在点击时切换
我宁愿不在 ViewModel 中创建一个新的对应点击函数。如果可能的话,我正在寻找一些我可以在数据绑定中单独放置的代码。
这是 JSFiddle 上的代码:http://jsfiddle.net/4wt4x/1/
谁能解释发生了什么以及我做错了什么?
【问题讨论】: