2013-11-09 55 views
1

CSS类,这是我的代码:如何使观察到的与淘汰赛JS

HTML:

<div> 
    <input type="button" id="btnEnable" value="Enable" /> 
    <input type="button" id="btnDisable" value="Disable" /> 
</div> 
<div id="myDiv">Some Text</div> 
<textarea rows="5" id="someText" data-bind="enable: enableText"></textarea> 

CSS:

.enabled{ 
    background-color: green; 
} 
.disabled{ 
    background-color: red; 
} 

的javascript:

$(document).ready(function() { 
    $("#myDiv").addClass("enabled").html(" Enabled"); 

    $("#btnEnable").click(function() { 
    $("#myDiv").removeClass("disabled"); 
    $("#myDiv").addClass("enabled").html(" Enabled"); 
    }); 
    $("#btnDisable").click(function() { 
    $("#myDiv").addClass("disabled").html(" Disabled"); 
    $("#myDiv").removeClass("enabled"); 
    }); 
    var viewModel = function(){ 
    enableText = ko.observable(true) 
    } 
    ko.applyBindings(viewModel); 
}); 

时我点击禁用按钮,启用css类 已移除。此时,我需要通过KO observable viewModel禁用textarea。

var viewModel = function(){ 
    enableText = ko.observable(here must return false when the enable css class is removed) 
} 

回答

2

您需要点击,CSS和文本绑定:

$(document).ready(
    var viewModel= function() { 
     var self = this; 
     self.enableClick = function() { 
      self.enable(true); 
     }; 
     self.disableClick = function() { 
      self.enable(false); 
     }; 
     // Stores the enable state 
     self.enable = ko.observable(); 
     // Get a text representation of the state 
     self.enableText = ko.computed(function(){ 
      return self.enable() ? 'Enabled' : 'Disabled'; 
     }); 
    }; 
    ko.applyBindings(new viewModel()); 
}); 

的观点:

<div> 
    <input type="button" data-bind="click: enableClick" value="Enable" /> 
    <input type="button" data-bind="click: disableClick" value="Disable" /> 
</div> 

<div data-bind="text: enableText, css :{'enabled' : enable,'disabled' : enable() != true }">Some Text</div> 
<textarea rows="5" id="someText" data-bind="enable: enable"></textarea> 

See fiddle

+0

@ pasluc74669, “别的东西” 你能不能更具体? – Damien

+0

它工作正常,但我需要别的东西:我需要启用/禁用textarea,淘汰模型视图,当一个CSS类被删除/添加。它可能吗? – pasluc74669

+1

是的,这是可能的。在99%的情况下,这是个坏主意,因为KO负责改变用户界面。我的意思是你改变视角模型和KO改变视角。 – Damien