Using knockout js with jquery ui sliders

后端 未结 4 1692
时光取名叫无心
时光取名叫无心 2020-12-01 14:50

I\'m trying to figure out if knockout js would work nicely for the following problem:

I have multiple sliders that I want to link to textboxes.

When the tex

4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-01 15:48

    I know it's some days ago but I made a few adjustments to John Earles code:

    ko.bindingHandlers.slider = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var options = allBindingsAccessor().sliderOptions || {};
        $(element).slider(options);
        ko.utils.registerEventHandler(element, "slidechange", function (event, ui) {
            var observable = valueAccessor();
            observable(ui.value);
        });
        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).slider("destroy");
        });
        ko.utils.registerEventHandler(element, "slide", function (event, ui) {
            var observable = valueAccessor();
            observable(ui.value);
        });
    },
    update: function (element, valueAccessor, allBindingsAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        if (isNaN(value)) value = 0;
        $(element).slider("option", allBindingsAccessor().sliderOptions);
        $(element).slider("value", value);
    }
    };
    

    The reason for this is that if you use options that change (fx another observable) then it won't affect the slider even if you wanted it to do so.

提交回复
热议问题