这是我遇到的一个有趣的小问题 动态设置div数组的类。
使用Knockout.js我正在分配通过'attr'绑定使用的类。
除了IE-7(不担心IE-6等),我测试的所有浏览器都能正常使用
我有一个突出显示issue here
的jsfiddle示例在示例中,静态(顶行)应与底部行匹配(生成ko) 在IE-7中,我只看到最广泛的css选择器颜色(银色)
答案 0 :(得分:10)
IE7要求您设置className
而不是class
。
例如,这适用于IE7 和其他浏览器:http://jsfiddle.net/thirtydot/VVuGh/14/
<div data-bind='attr: { "class": classes, "className": classes }'></div>
但是,理想情况下,不应该在HTML中支持这种IE7怪癖。里面的knockout.js会是一个更好的地方,虽然我对图书馆一无所知,能够提出这样的建议。
答案 1 :(得分:0)
如果在生成模板时无法确定您的类名(即它是模型的一部分),则可以创建custom binding。
init
/ update
方法的内容只会根据element
返回的内容设置valueAccessor
的类名。举个简单的例子,你可以(使用jQuery):
ko.bindingHandlers.yourBindingName = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called when the binding is first applied to an element
// Set up any initial state, event handlers, etc. here
$(element).addClass(valueAccessor());
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called once when the binding is first applied to an element,
// and again whenever the associated observable changes value.
// Update the DOM element based on the supplied values here.
}
};
您可以根据挖空css binding构建更复杂的绑定。