Các tài liệu knockout.js cho thấy css ràng buộc như thế này:Thay đổi lớp css trong knockout.js trên chuột nhấp
<div data-bind="css: { profitWarning: currentProfit() < 0 }">
Profit Information
</div>
tôi cần phải thích nghi với nó để thay đổi lớp css trên mouseclick. Tôi có thể làm cái này như thế nào?
Dựa trên câu trả lời dưới đây, tôi đang sử dụng một số mã như thế này:
// CSS class to be applied
<style>
.bigclass
{
width: 200px;
}
</style>
// Select list inside a jquery .tmpl
<script id='criteriaRowTemplate' type='text/html'>
<tr>
<td>
<select data-bind='click: makeBig, css: {bigclass : SelectHasFocus() > 0}' />
</td>
</tr>
</script>
// Knockout.js Viewmodel
var CriteriaLine = function() {
this.SearchCriterion = ko.observable();
this.SelectHasFocus = ko.observable(0);
// this method is called
makeBig = function(element) {
this.SelectHasFocus(1);
};
};
Tuy nhiên, đây không phải mở rộng độ rộng của danh sách lựa chọn. Tôi đang làm gì sai?
Tôi giả sử bạn có 'ko.applyBindings (CriteriaLine())' đâu đó sau khi tải tài liệu của bạn, phải không? Mã của bạn hoạt động như được hiển thị [ở đây] (http://jsfiddle.net/6896T/4/). – Pakman