Knockout.js 用knockoutjs绑定类名的3种不同方法
为什么knockoutjs中存在3种绑定css类名的方法,它们之间有什么区别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属性。因此,您
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谢谢,将此添加到帖子这里是类
绑定的文档: