Using knockout js with jquery ui sliders

后端 未结 4 1732
时光取名叫无心
时光取名叫无心 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条回答
  •  旧时难觅i
    2020-12-01 15:41

    Thanks so much for the help, I needed to use a range slider in my scenario so here is an extension to @John Earles and @Michael Kire Hansen

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

    and then the HTML to accompany it

提交回复
热议问题