Jquery滑块-';未定义';错误

Jquery滑块-';未定义';错误,jquery,twitter-bootstrap,slider,Jquery,Twitter Bootstrap,Slider,所以我从中得到了这个简单的脚本 我想要的只是一个简单的滑块,所以我使用了上面的脚本,虽然有点精简,但我得到了一个未定义的错误。有人能帮我做这个吗 这是我得到的 $(文档).ready(函数(){ $(“#滑块”).滑块({ 动画:对, 价值:1, 民:1,, 最高:10, 步骤:1, 幻灯片:功能(事件、用户界面){ 更新(1,ui.value);//已更改 } }); //添加,设置初始值。 美元(“#金额”).val(0); $(“#金额标签”).text(0); 更新(); }); //

所以我从中得到了这个简单的脚本

我想要的只是一个简单的滑块,所以我使用了上面的脚本,虽然有点精简,但我得到了一个未定义的错误。有人能帮我做这个吗

这是我得到的

$(文档).ready(函数(){
$(“#滑块”).滑块({
动画:对,
价值:1,
民:1,,
最高:10,
步骤:1,
幻灯片:功能(事件、用户界面){
更新(1,ui.value);//已更改
}
});
//添加,设置初始值。
美元(“#金额”).val(0);
$(“#金额标签”).text(0);
更新();
});
//变了。现在使用参数
函数更新(滑块,val){
//已更改。现在,直接从ui.value获取值。如果未设置(初始值,将使用当前值。)
var$amount=slider==1?val:$(“#amount”).val();
/*评论
$amount=$(“#滑块”)。滑块(“值”);
$duration=$(“#slider2”)。滑块(“值”);
*/
$('#滑块a').html('+$amount+'');
}
.ui小部件内容{
边框:1px实心#bdc3c7;
背景:#e1e1;
颜色:#22222;
利润上限:4倍;
}
.ui状态默认值.ui小部件内容.ui状态默认值{
背景:透明!重要;
边界:没有!重要;
}
.ui滑块.ui滑块手柄标签{
背景#E68937;
边界半径:5px;
宽度:5.2米;
}
.ui滑块.ui滑块句柄{
位置:绝对位置;
z指数:2;
宽度:5.2米;
高度:100px;
游标:默认值;
保证金:0-40px自动!重要;
文本对齐:居中;
线高:35px;
颜色:#FFFFFF;
字体大小:15px;
}
.ui滑块.ui滑块句柄.glyphicon{
颜色:#FFFFFF;
利润率:0.3倍;
字体大小:11px;
不透明度:0.5;
}
.ui角所有{
边界半径:20px;
}
.ui滑块水平.ui滑块手柄{
顶部:-.9em;
}
.ui状态默认值,
.ui小部件内容.ui状态默认值{
边框:1px实心#f9f9f9;
背景:#3498db;
}
.ui滑块水平.ui滑块手柄{
左边距:-0.5em;
}
.ui滑块.ui滑块句柄{
光标:指针;
}
.ui滑块a,
.ui滑块a:焦点{
光标:指针;
大纲:无;
}
.技能滑块{
边缘底部:70像素;
}

您正在执行的
var$amount=slider==1?val:$(“#amount”).val()但在HTML中,我看不到属性为
id=amount
的项目。可能还有其他问题,但这是第一个问题。(如果您不熟悉jquery,$(“#amount”)意味着获取ID为amount的HTML元素;如果没有,则返回未定义的元素,该元素没有“val”方法。(另外,我不喜欢对非jquery对象的变量使用$varname,但这是个人偏好。)

如果您使用#amount div显示该值,则必须将其设置为最小值,即您提供给滑块的1(不是0),如下所示:

替换

     $("#amount").val(0);

滑块不允许该值超出最小、最大范围,但您似乎正在初始化该值,使其超出该范围

在这段漂亮的代码中发生了什么

    var $amount = slider == 1?val:$("#amount").val();
它检查参数(滑块)是否已传递给函数,如果未传递,则将滑块值初始化为#amount中的值。 在update()调用中,没有传递滑块值,因此它尝试读取#amount中的值。但是#amount对象不是在html中创建的。这就是“UndefinedError”的来源

此外,如果不使用#amount div,那么在document.ready()函数中,可以使用update(1,1)而不是空的update()来设置滑块的值,而无需读取#amount对象的值

这应明确设置滑块的初始值:

替换

    update();

替换

    var $amount = slider == 1?val:$("#amount").val();

理想情况下,您不希望用init逻辑重载update()函数。
因此,这可以保持它的干净。

谢谢Foon,我从中获取了脚本-显然,我没有很好地清理它。:)
    update(1,1);
    var $amount = slider == 1?val:$("#amount").val();
    var $amount = val;