<div data-bind="css: { highlighted: highlight }, click: toggleHighlight">
random string
</div>
<input type="checkbox" data-bind="css: { 'checked': dimitri, 'unchecked': !dimitri() }, click: toggledimitri, checked: dimitri">
var ViewModel = function() {
var self = this;
self.dimitri = ko.observable(false);
self.toggledimitri = function() { self.dimitri(!self.dimitri()) };
self.highlight = ko.observable(true);
self.toggleHighlight = function() { self.highlight(!self.highlight()) };
}
ko.applyBindings(new ViewModel());
var vm = ko.dataFor(document.body);
基本上什麼我後CSS類的觸發翻轉電檢查{checked和unchecked}同時還檢查並取消選中使用淘汰賽選中複選框:CSS:和點擊:。任何想法,我有點不正確? jsfiddle淘汰賽複選框切換CSS類和在點擊
'checked'綁定不需要額外的'click'綁定來獲得切換功能。從您的複選框中刪除'click'綁定並查看會發生什麼。 – user3297291
首先感謝您的幫助,是的它讓我更接近了一步,但儘管我已經嘗試過了,但是我已經恢復了原狀,因爲這樣可以防止在可觀察的基因錯誤時分配未經檢查的類。當元素未被選中時,我需要分配一個類。 –
您需要在'unchecked'類綁定中使用'!dimitri()'。 '!dimitri'不能自動解包觀測值。所以:'data-bind =「css:{'checked':dimitri,'unchecked':!dimitri()},checked:dimitri」' – user3297291