I have used http://harvesthq.github.com/chosen/ in my projects. It works perfectly over standard HTML control SELECT. So I have used standard bindings for managing SELECT (options, value, selectionOptions) and additional custom binding chosen
to convert standard control to fancy one.
You could checkout usage example: http://jsfiddle.net/romanych/PcXrP/6/
There is code of binding. It is pretty simple
ko.bindingHandlers.chosen = {
init: function(elemenet, valueAccessor) {
var chosenOptions = ko.utils.unwrapObservable(valueAccessor());
$(elemenet).chosen(chosenOptions);
},
update: function(elemenet, valueAccessor, allValuesAccessor) {
// Subscribe to any change of underlying SELECT-element
ko.utils.unwrapObservable(allValuesAccessor().value);
ko.utils.unwrapObservable(allValuesAccessor().options);
ko.utils.unwrapObservable(allValuesAccessor().selectedOptions);
$(elemenet).trigger("liszt:updated");
}
};