我想让我的第一个jQuery滑块,我有这个代码:
$("#str").keyup(function(event) {
var data=$("#str").val();
if (data.length>0)
{
var intdata=SpecialRound(parseFloat(data));
if (intdata>=0 && intdata<=20)
{
$("#str_slider").slider("option", "value", data);
}
else
{
if (intdata<0)
{
$("#str").val("0");
$("#str_slider").slider("option", "value", "0");
}
if (intdata>20)
{
$("#str").val("20");
$("#str_slider").slider("option", "value", "20");
}
}
}
});
虽然,我有一个问题。当我在ID为#str的输入中写入内容时,什么也没有发生。不过,滑块工作完美。你可以测试一下http://vpopulus.tk/damage
EDIT:当你编辑输入时,滑动条也会随之改变
我认为您的选择器$('#str')
是问题所在,因为您的输入没有ID #str,而只是一个具有值"str"的名称属性。正确的选择器是$('input[name="str"]')
实际的问题是这个SpecialRound函数,因为您在这里使用了一个不存在的函数"round()"。用这个代替:
//Special round
function SpecialRound(f) {
return Math.round(f*100) / 100;
}
如果我是你,我会使用change事件而不是keyup
例如:$( "#str" ).change(function() {
var val = this.val(); // you can do your rounding here then...
$("#str_slider").slider( "value", val );
});
通过查看您的测试页,您在SpecialRound
中的第54行有var r=round(f*100)/100;
应该是
var r=Math.round(f*100)/100;