Knockout.js 颜色选择器在knockoutJS模板选项卡中不工作

Knockout.js 颜色选择器在knockoutJS模板选项卡中不工作,knockout.js,Knockout.js,嗨,我正在尝试在我的淘汰模板中使用jQuery颜色选择器,我从中获得的颜色选择器。我有一个选项卡选择器(有3个敲除模板),当用户选择敲除完成的选项卡时,它会在每个模板中旋转,颜色选择器出现在第一个选项卡上,但当我通过选项卡时,它不会在剩下的两个选项卡中添加颜色选择器,即使我在通过所有选项卡后返回到原始选项卡(它最初工作的地方) 我在控制台中没有收到任何错误,但即使我尝试从敲除模板(2和3)中执行javascript警报,也无法工作 任何帮助都将不胜感激 <script id="Links"

嗨,我正在尝试在我的淘汰模板中使用jQuery颜色选择器,我从中获得的颜色选择器。我有一个选项卡选择器(有3个敲除模板),当用户选择敲除完成的选项卡时,它会在每个模板中旋转,颜色选择器出现在第一个选项卡上,但当我通过选项卡时,它不会在剩下的两个选项卡中添加颜色选择器,即使我在通过所有选项卡后返回到原始选项卡(它最初工作的地方)

我在控制台中没有收到任何错误,但即使我尝试从敲除模板(2和3)中执行javascript警报,也无法工作

任何帮助都将不胜感激

<script id="Links" type="text/html">
    <div id="linksTemplate">
        <section class="well span7">
            <fieldset>
                <legend>Links</legend>
                <label class="inline">
                    <span class="formLabel">Border Colour</span>
                    <input type="text" data-bind="value: settings.links.style.stroke" class="minicolors" data-control="saturation" />
                </label>

                <label class="inline">
                    <span class="formLabel">Border Width</span>
                    <input type="text" data-bind="value: settings.links.style.stroke_width" />
                </label>
            </fieldset>
        </section>
    </div>
    <script type="text/javascript">
        $(document).ready(function () {
            alert('hello');
        });
    </script>
</script>

链接
边框颜色
边框宽度
$(文档).ready(函数(){
警惕(“你好”);
});

您需要为敲除映射创建一个绑定。我使用的是相同的颜色选择器,并且实现了这一点。无法告诉您这是否是最佳解决方案,因为这是一种尝试和错误。我不太熟悉敲除,但它可以工作

这是您需要的绑定函数:

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

        var options = allBindingsAccessor().defaultSettings || {};

  var funcOnSelectColor = function () {
        var observable = valueAccessor();
  observable($(element).minicolors("value"));
}
//-- also change event to hide
options.hide = funcOnSelectColor;

$(element).minicolors(options);

//handle the field changing
ko.utils.registerEventHandler(element, "change", funcOnSelectColor);

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

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

   var current = $(element).minicolors("value");
   if (value - current !== 0) {
     $(element).minicolors("value", value);
   }
 }
};
这是您使用它的方式:

<input class="minicolors" data-position="default" style="padding: 2px; height: 20px;" data-bind="minicolors: MYKNOCKOUTBINDING, defaultSettings: {}" />


希望这有帮助

如果没有任何代码,就不可能找出问题的原因。请用相关的代码部分扩展您的问题。理想情况下,简化的JSFIDLE将是最好的,可以显示您的实际问题。我无法链接到JSFIDLE,因为有很多文件我无法放到网上,我添加了一些在上面的代码中,有3个敲除模板节点、链接、标签(按顺序显示)