如果达到最小值/最大值,我需要一个微调器溢出,我可以按如下方式进行 -
$('.inline-spinner').spinner({
page: 10,
spin: function(event, ui){
if(ui.value > 99){
$(this).spinner('value', 0);
return false;
} else if (ui.value < 0){
$(this).spinner('value', 99);
return false;
}
}
});
但是,如果我扩展微调器以便在输入中添加px
后缀,那么当我试图超出其中一个边界值时,附加到spin
的函数会产生错误(但是否则工作正常) -
初始化之前无法在微调器上调用方法;试图调用方法'value'。
有人可以告诉我为什么会出现这个错误,以及如何修复它?
以下是我如何扩展微调器(我也尝试删除options
,而是将它们包含在$('.inline-spinner').inlineSpinner();
调用中,但这也产生了错误) -
$.widget('ui.inlineSpinner', $.ui.spinner, {
options: {
page: 10,
spin: function(event, ui){
if(ui.value > 99){
$(this).spinner("value", 0);
return false;
} else if (ui.value < 0){
$(this).spinner("value", 99);
return false;
}
}
}
_format: function(value) { return value + 'px'; },
_parse: function(value) { return parseInt(value); }
});
$('.inline-spinner').inlineSpinner();
答案 0 :(得分:0)
字面意思是当我发布这个问题时,答案就在我身上......
我正在推广spinner
(并将其称为inlineSpinner
),但我在spinner
上调用方法'value'。我改变了有问题的电话,现在一切正常。
$.widget('ui.inlineSpinner', $.ui.spinner, {
options: {
page: 10,
spin: function(event, ui){
if(ui.value > 99){
$(this).inlineSpinner("value", 0); // Changed this line
return false;
} else if (ui.value < 0){
$(this).inlineSpinner("value", 99); // Changed this line
return false;
}
}
},
_format: function(value) { return value + 'px'; },
_parse: function(value) { return parseInt(value); }
});
$('.inline-spinner').inlineSpinner();