У меня есть немного 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>
То, что я пытаюсь достичь:
- Класс css "подсвечивается" только для активации, если значение var highlight истинно.
- Нажатие на div переключит значение bool выделения var
- Требуемый результат: нажатие на div для активации/деактивации класса css
Что я получаю:
- Начальное значение выделения
true
, но класс css начинает деактивироваться (если я изменяю начальное значение наfalse
, активируется класс css: похоже, что я каким-то образом вызвал привязку кликов, когда Я еще ничего не нажал) - Класс div css не переключается при нажатии
Я бы предпочел не создавать новую функцию click внутри ViewModel. Я смотрю, если возможно, для небольшого кода, который я могу разместить только внутри линии привязки данных.
Здесь код на JSFiddle: http://jsfiddle.net/4wt4x/1/
Может ли кто-нибудь объяснить, что происходит и что я делаю неправильно?