此代码用于数据库托管的页面。页面有滑块,用户可从中选择所需的核心数和ram的上限和下限。滑块中的选定值正在工作,并以span id&s输出。然后,我想采用选定的值来计算价格。但是我无法取回价值。我将其分解为简单的部分,并意识到核心或内存没有返回值。当滑块更新页面时,我需要做什么来检索值?
<script>
function showValues(event, ui) {
var values;
if (!ui.values) {
values = $("#" + event.target.id).slider("values");
}
else {
values = ui.values;
}
if (values[0] == values[1]) {
return false;
}
else {
values[0] % 1 == 0;
values[1] % 1 == 0;
$("#" + event.target.id + "-valuemin").html(parseInt(values[0]));
$("#" + event.target.id + "-valuemax").html(parseInt(values[1]));
}
}
$(document).ready(function() {
var base = 24;
var cores = parseInt($("#CoreSlider-valuemin").val()*5);
var ram = parseInt($("#RanSlider-valuemin").val()*2) + parseInt($("#RanSlider-valuemax").val());
var cost = parseInt(base) + parseInt(cores) + parseInt(ram);
$("#Cost").html(parseInt(cost));
});
$(function() {$( "#RanSlider" ).slider({range: true,min: 1,max: 64,step: 1,values: [4, 16],slide: showValues,create: showValues,change: showValues});});
$(function() {$( "#CoreSlider" ).slider({range: false,min: 1,max: 16,step: 1,values: [2],slide: showValues,create: showValues,change: showValues});});
</script>
答案 0 :(得分:1)
val()
不是可以从元素获取文本的函数(如果它不是输入或类似的东西)。 text()
可以做到。看看这个小提琴:http://jsfiddle.net/bandrzejczak/jdf1a2ct/
编辑:让我重新说一下:你用什么来写东西(比如.text("a")
,.html("b")
),.val("c")
,你可以用它来读取相同的东西元素,不使用参数(.text("a")
写入和.text()
阅读)
另外如果你想在每个滑块移动后计算成本,你应该将计算函数放在valueChange函数中。
当然有一个更好的方法可以做到这一点,而不使用帮助div
,但是这个我可以用你所得到的最快的速度工作。
编辑:不要在parseInt
上使用int
,例如base
变量。
答案 1 :(得分:0)
您的挑战似乎是将事件处理与滑块相关联。您现有的代码如下所示:
$(function() {
$("#RanSlider").slider(
{
range: true,
min: 1,
max: 64,
step: 1,
values: [4, 16],
slide: showValues,
create: showValues,
change: showValues
});
});
您的代码会显示slide
,create
和change
的选项。这些都不是有效的选择。相反,您需要注册事件回调,例如:
$("#RanSlider").on("slide", showValues);
$("#RanSlider").on("create", showValues);
$("#RanSlider").on("change", showValues);
或更有效率:
$("#RanSlider").on(
{
"slide": showValues,
"create": showValues,
"change": showValues
});