单击鼠标更改 Knockout.js 中的 css 类

2024-03-29

Knockout.js 文档显示了这样的 css 绑定:

<div data-bind="css: { profitWarning: currentProfit() < 0 }">   
    Profit Information
</div>

我需要对其进行调整以更改鼠标单击时的 css 类。我怎样才能做到这一点?

根据下面的答案,我正在使用这样的代码:

// 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);            
    };        
};

然而,这并没有扩大选择列表的宽度。我究竟做错了什么?


让你的点击函数改变一个可观察的变量。为了example http://jsfiddle.net/6896T/57/:

<div data-bind="css: { myclass: newClass() == true }">
   Profit Information
</div>

<button data-bind="click: changeClass">Change Class</button>

<script type="text/javascript">
    var viewModel = {
        newClass: ko.observable(false),
        changeClass: function() {
            viewModel.newClass(true);
        }
    }; 
</script>

注意:可以组合click and css在同一个元素上。例如:

<div databind="click: changeClass, css: { myclass: newClass() == true }"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击鼠标更改 Knockout.js 中的 css 类 的相关文章

随机推荐