JQuery UI Slider Uncaught TypeError:无法读取属性' addClass'未定义的

时间:2014-07-23 22:18:32

标签: javascript jquery jquery-ui

我已经检查了所有关于SO的问题,我似乎无法找到答案。如果我将整数直接放入字段然后这可以工作,但我想在设置脚本时动态设置参数

我正在运行JQuery 1.11.1,JQuery UI stable(1.11.0)和touchpunch。我调试了变量,并且在调用此变量时都会存在并初始化。我也尝试用相同的结果包装自执行函数。

(可以忽略滑动功能)

抛出异常

编辑我刚刚注意到,如果我点击滑块,则会抛出异常,但如果我按下右箭头键,则不会抛出任何异常,并使用value属性填充金额。我在问题的最后粘贴了控制台输出。

$("#slider").slider({
            value: parseInt(window.settings.principal.minimum),
            min: parseInt(window.settings.principal.minimum),
            max: parseInt(window.settings.principal.maximum),
            step: parseInt(window.settings.principal.increment),
            slide: function(event, ui) {
                $( "#amount" ).val( "$" + $( "#slider").slider( "value"));
            }
        });

然而,这将有效

$("#slider").slider({
            value: 500,
            min: 500,
            max: 10000,
            step: 500,
            slide: function(event, ui) {
                $( "#amount" ).val( "$" + $( "#slider").slider( "value"));
            }
        });

控制台输出

jQuery("#slider").slider("value"); 
5000
jQuery("#slider").slider("min"); 
Error: no such method 'min' for slider widget instance
jQuery("#slider").slider("minimum"); 
Error: no such method 'minimum' for slider widget instance
jQuery("#slider").slider("max"); 
Error: no such method 'max' for slider widget instance
jQuery("#slider").slider("interval"); 
Error: no such method 'interval' for slider widget instance
jQuery("#slider").slider("step"); 
Error: no such method 'step' for slider widget instance
jQuery("#slider").slider("values"); 
[]

3 个答案:

答案 0 :(得分:3)

再给你的变量(window.settings.principal.*)看一看。我只是复制了你的源代码,用我自己的代码替换它们,并且它工作正常,所以你的代码似乎没问题。确保它们不仅是有效的数字,而且它们在上下文中是有意义的。

答案 1 :(得分:0)

我遇到了同样的问题。只是在试用n错误基础上,我发现问题出在parseInt()函数中。我删除了该功能,只使用了原始数据:

$("#slider").slider({
    value: window.settings.principal.minimum,
    min: window.settings.principal.minimum,
    max: window.settings.principal.maximum,
    step: window.settings.principal.increment
});

我们似乎正在为滑块复制一段旧片段。我没有想到这个设置中的parseInt()有什么问题,因为我不是那种技术,但我希望这有助于其他人。

答案 2 :(得分:0)

请检查最小值和最大值,最小值应小于最大值。

请查看以下示例以供参考。

$( ".slider1"+blockid ).slider({
    range: "min",
    value:0,
    min: 100,
    max: 10000,
    step : 10000,
    animate:true,
    slide: function( event, ui ) {
        console.log(ui.value);
    },
    create: function(event,ui){
    }
});