mirror of
https://github.com/Febbweiss/febbweiss.github.io.git
synced 2026-03-05 06:35:50 +00:00
18 lines
892 B
JavaScript
18 lines
892 B
JavaScript
var classesWrittenByBindingKey = '__ko__cssValue';
|
|
ko.bindingHandlers['css'] = {
|
|
'update': function (element, valueAccessor) {
|
|
var value = ko.utils.unwrapObservable(valueAccessor());
|
|
if (value !== null && typeof value == "object") {
|
|
ko.utils.objectForEach(value, function(className, shouldHaveClass) {
|
|
shouldHaveClass = ko.utils.unwrapObservable(shouldHaveClass);
|
|
ko.utils.toggleDomNodeCssClass(element, className, shouldHaveClass);
|
|
});
|
|
} else {
|
|
value = ko.utils.stringTrim(String(value || '')); // Make sure we don't try to store or set a non-string value
|
|
ko.utils.toggleDomNodeCssClass(element, element[classesWrittenByBindingKey], false);
|
|
element[classesWrittenByBindingKey] = value;
|
|
ko.utils.toggleDomNodeCssClass(element, value, true);
|
|
}
|
|
}
|
|
};
|