Jquery ui 未捕获类型错误:属性';最小值';对象#<;对象>;这不是一个函数
我试图利用RP Niemeyer几次发布的击倒滑块活页夹。不幸的是,在尝试使用它时,我收到了标题中的错误Jquery ui 未捕获类型错误:属性';最小值';对象#<;对象>;这不是一个函数,jquery-ui,knockout.js,slider,Jquery Ui,Knockout.js,Slider,我试图利用RP Niemeyer几次发布的击倒滑块活页夹。不幸的是,在尝试使用它时,我收到了标题中的错误 (function($){ ko.bindingHandlers.slider = { init: function (element, valueAccessor, allBindingsAccessor) { var options = allBindingsAccessor().sliderOptions || {}; var sliderVa
(function($){
ko.bindingHandlers.slider = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = allBindingsAccessor().sliderOptions || {};
var sliderValues = ko.utils.unwrapObservable(valueAccessor());
if(sliderValues.min !== undefined) {
options.range = true;
}
options.slide = function(e, ui) {
if(sliderValues.min) {
// Errors here
sliderValues.min(ui.values[0]);
sliderValues.max(ui.values[1]);
} else {
sliderValues.value(ui.value);
}
};
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).slider("destroy");
});
$(element).slider(options);
},
update: function (element, valueAccessor) {
var sliderValues = ko.toJS(valueAccessor());
if(sliderValues.min !== undefined) {
$(element).slider("values", [sliderValues.min, sliderValues.max]);
} else {
$(element).slider("value", sliderValues.value);
}
}
};
this.range = {
'cook': function(kitchen, name, label, recipe){
var food = new this.viewModel(kitchen);
food.name = name;
food.label = label;
food.total(recipe.numberOfResults);
food.criteriaMin = recipe.minValue;
food.criteriaMax = recipe.maxValue;
return food;
},
'viewModel': function(kitchen){
var self = this;
this.name = '';
this.label = '';
this.total = window.ko.observable();
this.criteriaMin = ko.observable(0);
this.criteriaMax = ko.observable(100);
this.loading = window.ko.observable(false);
this.template = '';
this.getSelection = function(){
return null;
};
this.setSelection = function(){
};
},
'template': '<th class="idc-td-criteria" scope="row" data-bind="text:label"></th>' +
'<td class="idc-td-value idc-td-slider">' +
' <label for="AmountMin" class="hiddenText">Amount Min</label>' +
' <input type="text" data-default="0" data-maxdecimal="2" class="idc-textinput idc-sliderinput" maxlength="6" data-bind="value: criteriaMin || \'0.00\'">' +
' <span class="slider" data-bind="slider: { min: criteriaMin, max: criteriaMax }, sliderOptions: {min: 0, max: 100, step: 1}"></span>' +
' <label for="AmountMax" class="hiddenText">Amount Max</label>' +
' <input type="text" data-default="10" data-maxdecimal="2" class="idc-textinput idc-sliderinput" maxlength="6" data-bind="value: criteriaMax || \'10.00\'">' +
'</td>' +
'<td class="idc-td-results" data-bind="text:total"></td>' +
'<td class="idc-td-remove">' +
' <a href="#">' +
' <img src="images/column_delete.png" alt="Delete criteria [criteria name]" role="button" />' +
' </a>' +
'</td>'
};
}).call(window.idmsScreener.chefs, jQuery);
(函数($){
ko.bindingHandlers.slider={
init:function(元素、valueAccessor、allBindingsAccessor){
var options=allBindingsAccessor().sliderOptions | |{};
var sliderValues=ko.utils.unwrapObservable(valueAccessor());
if(sliderValues.min!==未定义){
options.range=true;
}
options.slide=函数(e、ui){
if(sliderValues.min){
//这里的错误
sliderValues.min(ui.values[0]);
sliderValues.max(ui.values[1]);
}否则{
sliderValues.value(ui.value);
}
};
ko.utils.domNodeDisposal.addDisposeCallback(元素,函数(){
$(元素)。滑块(“销毁”);
});
$(元素).滑块(选项);
},
更新:函数(元素、值访问器){
var sliderValues=ko.toJS(valueAccessor());
if(sliderValues.min!==未定义){
$(element.slider(“values”,[sliderValues.min,sliderValues.max]);
}否则{
$(element.slider(“value”,sliderValues.value);
}
}
};
此范围={
“厨师”:功能(厨房、名称、标签、食谱){
var food=新的this.viewModel(厨房);
food.name=名称;
食品标签=标签;
食物.总数(配方.数量结果);
food.criteriaMin=recipe.minValue;
food.criteriaMax=recipe.maxValue;
归还食物;
},
“视图模型”:功能(厨房){
var self=这个;
this.name='';
this.label='';
this.total=window.ko.observable();
this.criteriaMin=ko.observable(0);
该标准最大值=可观察的ko(100);
this.loading=window.ko.可观察(假);
this.template='';
this.getSelection=函数(){
返回null;
};
this.setSelection=函数(){
};
},
“模板”:”+
'' +
“最低金额”+
' ' +
' ' +
“最大金额”+
' ' +
'' +
'' +
'' +
' ' +
''
};
}).call(window.idmsScreener.chefs,jQuery);
我尝试将其从sliderValues.min()更改为sliderValues.min=ui.values[0];然而,通过更改,我似乎无法正确获取值。我还尝试更改滑块选项的“最小”和“最大”值,以便它们不是静态设置的,但这会引发完全不同的错误。如果您能帮助解决此问题,我们将不胜感激。能够解决此问题。确定我正确设置了最小和最大标准。我用一个等号做作业,这个等号覆盖了可观察的对象。也许你可以根据这把小提琴进行复制:我发现我的问题是我用错误的方式设置了viewmodel。在我做
food.criteriaMin=recipe.minValue之前;food.criteriaMax=recipe.maxValue代码>而不是食品.criteriaMin(recipe.minValue);食品.criteriaMax(配方.maxValue)代码>