如何在knockoutjs中添加动态类?

use*_*567 28 javascript knockout.js

让我说我有,

<span class="cls1 cls2" data-bind="title: title" ></span>
Run Code Online (Sandbox Code Playgroud)

我想通过JSON对象添加另一个类,

{ title: 'a', clas: 'cls3' }
Run Code Online (Sandbox Code Playgroud)

这部作品,

    <span class="cls1 cls2" data-bind="attr:{title: title,'class': 'cls1 cls2'+clas}" ></span>
Run Code Online (Sandbox Code Playgroud)

但问题是它会添加两个类属性.我开始需要cls1和cls2类.但是在一些事件之后需要cls3类.

Art*_*kov 42

你应该使用css绑定而不是attr为此.在文档中阅读更多相关信息:http://knockoutjs.com/documentation/css-binding.html.

你的代码看起来像这样:

<span class="cls1 cls2" data-bind="text: title, css: myClass" ></span>
Run Code Online (Sandbox Code Playgroud)

这是工作小提琴:http://jsfiddle.net/vyshniakov/gKaRF/


Cod*_*ody 14

使用多个类:

<span
    class="yourClass"
    data-bind="css: { myClass: (true == true), theirClass: (!true == false), ourClass: true }"
>Thine Classes</span>
Run Code Online (Sandbox Code Playgroud)

  • `{'active-class':isSelected}`你的意思.我希望. (4认同)
  • 为什么你在做`(true == true)`和`(!true == false)`? (3认同)

vfp*_*ero 9

您可以使用css绑定来执行此操作:

<span class="cls1 cls3" data-bind="css: clas"/>
Run Code Online (Sandbox Code Playgroud)

这会将"clas"属性的值添加到元素的当前类集合中