尝试调用方法'value'时扩展的jQuery spnder抛出错误

时间:2013-10-31 11:37:14

标签: jquery widget spinner

如果达到最小值/最大值,我需要一个微调器溢出,我可以按如下方式进行 -

$('.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();

1 个答案:

答案 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();