Knockout.js 用knockoutjs绑定类名的3种不同方法

Knockout.js 用knockoutjs绑定类名的3种不同方法,knockout.js,Knockout.js,为什么knockoutjs中存在3种绑定css类名的方法,它们之间有什么区别 1. <div data-bind="class: name"> // jquery is needed 2. <div data-bind="attr: { class: name}"> 3. <li data-bind="css: name"> 1.//jquery是必需的 2. 3. attr:{class:name}绑定到整个class属性。因此,您

为什么knockoutjs中存在3种绑定css类名的方法,它们之间有什么区别

   1. <div data-bind="class: name"> // jquery is needed

   2. <div data-bind="attr: { class: name}">

   3. <li data-bind="css: name">
1.//jquery是必需的
2.
3. 

  • attr:{class:name}
    绑定到整个class属性。因此,您必须知道应用于元素的所有类

    css:name
    仅绑定一个或多个命名类。因此,如果我有HTML:

    <span class="myclass" data-bind="css: myOtherClass">
    
    
    
    最后我可以上两门课:
    myclass
    myOtherClass

    我不确定你的
    类:name
    语法。我找不到关于它的任何文档


    edit:我认为
    class
    绑定可能是
    css
    绑定的旧淘汰语法。我可以在Github上找到它的一个属性,但没有当前的源代码。

    attr:{class:name}
    绑定到整个class属性。因此,您必须知道应用于元素的所有类

    css:name
    仅绑定一个或多个命名类。因此,如果我有HTML:

    <span class="myclass" data-bind="css: myOtherClass">
    
    
    
    最后我可以上两门课:
    myclass
    myOtherClass

    我不确定你的
    类:name
    语法。我找不到关于它的任何文档


    edit:我认为
    class
    绑定可能是
    css
    绑定的旧淘汰语法。我可以在Github上找到一个用于它的工具,但是没有当前的源代码。

    attr和css之间的主要区别是attr绑定不仅适用于类绑定,而且适用于一般的属性。它总是使用元素上的值创建新属性。因此,例如,如果元素上有另一个类,则类的attr绑定将覆盖它。css绑定将创建新的类属性,只要它还不存在。否则,它会将其附加到现有属性

    
    测试1
    测试2
    
    attr和css之间的主要区别在于,attr绑定不仅适用于类绑定,而且适用于一般属性。它总是使用元素上的值创建新属性。因此,例如,如果元素上有另一个类,则类的attr绑定将覆盖它。css绑定将创建新的类属性,只要它还不存在。否则,它会将其附加到现有属性

    
    测试1
    测试2
    
    注意:没有称为
    class
    的标准绑定,因此它必须是定制的东西。另外两个
    data bind=“attr:{class:name}”
    data bind=“css:name”
    是内置的淘汰绑定注意:没有称为
    class
    的标准绑定,因此这必须是自定义的东西。另外两个
    databind=“attr:{class:name}”
    databind=“css:name”
    是内置的淘汰bindings@bastienne谢谢,将此添加到帖子这里是
    绑定的文档:@bastiene谢谢,将此添加到帖子这里是
    绑定的文档: