Skip to content

Instantly share code, notes, and snippets.

@ivanjr0
Created May 5, 2012 21:19
Show Gist options
  • Save ivanjr0/2605640 to your computer and use it in GitHub Desktop.
Save ivanjr0/2605640 to your computer and use it in GitHub Desktop.
ko.bindingHandlers.current = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
ko.utils.registerEventHandler(element, 'click', function() {
var observable = valueAccessor(), $element = $(element);
$element.parent().children().removeClass('current');
if (observable() === viewModel) {
observable(null);
return;
}
observable(viewModel);
$element.addClass('current');
});
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var value = ko.utils.unwrapObservable(valueAccessor()), $element;
if (value === viewModel) {
$element = $(element);
$element.parent().children().removeClass('current');
$element.addClass('current');
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment