このjqueryカラーピッカーをknockout.jsで使用しようとしています。colorpicker入力コントロールをviewModelカラー値にバインドするカスタムバンディングハンドラーを作成しました。
バインディングハンドラーのコードは次のとおりです。
ko.bindingHandlers.colorPicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().colorPickerOptions || {};
$(element).colorPicker(options);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).colorPicker("value"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).colorPicker("destroy");
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).colorPicker("value", value);
}
およびHTML:
<input type="text" data-bind="colorPicker: newEvent().color, colorPickerOptions: { value:newEvent().color }"/>
問題は、色を変更すると、画像に示すように色を変更するたびに複数のdivが作成されることです。
誰かが私のコードの問題を特定できますか?