【问题标题】:How to set 'style:color' with colorpicker in knockout.JS如何在 knockout.JS 中使用颜色选择器设置“样式:颜色”
【发布时间】:2015-02-10 22:09:26
【问题描述】:

我想用颜色选择器设置文本的颜色。找到了一个不错的小家伙,它带有淘汰赛绑定处理程序,但无法使其正常工作。

HTML:

<div class="myPicker" data-bind="jqColorPicker: coverTextColor, colorPickerOptions: { value: coverTextColor}"></div>
<span class="title" data-bind="text: title, style: { color: coverTextColor}">blahblah</span>

绑定处理程序和视图模型:

ko.bindingHandlers.jqColorPicker = {
    init: function (element, valueAccessor, allBindingsAccessor) {

        // set default value
        var value = ko.utils.unwrapObservable(valueAccessor());
        $(element).val(value);

        //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).val());
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).colorPicker("destroy");
        });

    },
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        $(element).val(value);
        $(element).change();
    }
};


viewModel = function(){
    var self = this;
    self.coverTextColor = ko.observable('green');
    self.title = ko.observable('Hi there!');
};

ko.applyBindings( new viewModel() );

任何帮助表示赞赏。

在这里提琴:http://jsfiddle.net/AsleG/hmLbb9c0/2/

【问题讨论】:

标签: javascript jquery css knockout.js


【解决方案1】:

div 既没有change 事件,也不能用jQuery 的.val() 方法读取其内容。

您应该使用输入字段的文档states,并且单独进行更改后,您的代码就可以工作。

http://jsfiddle.net/48evdyvx/1/

【讨论】:

  • IMO,viewModel 对象也可能获得对self(即var self = this;)的某种引用,因为这将使调试更容易一些。 jsfiddle.net/3kcuvd0n
猜你喜欢
  • 1970-01-01
  • 2015-08-15
  • 2015-03-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
相关资源
最近更新 更多