【发布时间】:2013-01-09 08:28:56
【问题描述】:
我正在做一个带有淘汰赛的小项目,我必须模拟一些问题的答案。 我动态构建了 3 个按钮,当我单击一个按钮时,我将其上的文本与正确答案进行比较,如果正确,则应变为绿色..,如果不正确,则应变为红色,正确的应变为绿色.. 我试图使用绑定到淘汰赛的 css 属性,但似乎该属性没有正确刷新,即使与 css 关联的计算发生了变化 html:
<ul data-bind="foreach: chosenQuestionAnswers">
<li>
<button data-bind="text: answerText, css: $root.answerStatus(), click: $root.selectButton"></button>
</li>
</ul>
ko部分:
selectedAnswer: ko.observable(),
isAnswerCorrect: ko.observable(),
selectButton: function (value) { my.AppViewModel.isAnswerCorrect(my.AppViewModel.checkIfCorrectAnswer(value.answerText));
},
checkIfCorrectAnswer: function (value) {
return (value == my.AppViewModel.chosenQuestionCorrectAnswer());
},
my.AppViewModel.answerStatus = ko.computed(function () {
var exit = this.isAnswerCorrect() == true ? "highlightRight" : "highlightWrong";
console.log(this.isAnswerCorrect());
console.log(exit);
return exit;
}, my.AppViewModel);
console.log 显示 var exit 的正确值...但是按钮的 css 没有改变...
知道为什么吗?..
谢谢....我。
【问题讨论】:
-
你能把你的代码放到jsfiddle里吗?
标签: css binding knockout.js