我刚接触jQuery-ui,在初始化jquery-ui-slider时遇到了问题。我正在尝试创建一个具有最小和最大值的滑块。
滑块应该只有一个句柄,它应该被初始化为某个值,但不知何故,它总是被设置为max。然而,我有一个span元素,我在其中写入了滑块的实际值,并且此span中的值被正确初始化。
我按如下方式启动滑块:
jQuery("#slider-range-min").slider({
range: "min",
min: 3,
slide: function( event, ui ) {
jQuery("#length").text(ui.value);
}
});嵌入滑块的对话框如下所示:
jQuery(".config_length").live('dblclick',function() {
jQuery("#length-form").find("input[name=referer]").val(this.id);
var max = jQuery(this).find("input[name$='_param']").val();
var value = jQuery(this).find("input[name$='_value']").val();
jQuery("#slider-range-min").slider("option","max", max);
jQuery("#slider-range-min").slider("option","value", value);
jQuery("#length").text(value);
jQuery("#length-form").dialog("open");
});‘# slider range-min’是滑块的id,'#length-form‘是对话框的id,'#length’是跨度的id。变量'max‘和'value’都有正确的值(由Firebug控制)。
例如,如果'max‘设置为250,' value’设置为100,跨度中的值将为100,滑块上的控制柄将位于最右边的位置(应为250?),但只要我单击该控制柄,跨度中的值就会变为249。
编辑
只有当'max‘值大于100 (这是最大值的默认值)时,才会出现问题。此外,我设置“max”和“value”的顺序似乎也会影响行为。
我做错了什么?
发布于 2010-12-10 18:46:49
我找到了一种让它工作的方法,但我认为没有必要这样做:
jQuery("config_length").live('dblclick',function() {
jQuery("#length-form").find("input[name=referer]").val(this.id);
var max = jQuery(this).find("input[name$='_param']").val();
var value = jQuery(this).find("input[name$='_value']").val();
if (max > 100) {
jQuery("#slider-range-min").slider("option", "value", value).slider("option","max", max);
} else {
jQuery("#slider-range-min").slider("option","max", max).slider("option", "value", value);
}
jQuery("#length").text(value);
jQuery("#length-form").dialog("open");
});即使它现在起作用了,我也想知道是否有“正确”的方法。
发布于 2010-12-10 16:42:45
实际上,当你将一个对象传递给"option“方法os滑块(第二个代码片段)时,它会覆盖现有的值,这意味着如果不在新的选项对象中重复,所有的初始选项都是空的。此外," value“选项在语义上与初始值相关,如果要更改运行时值,则必须使用" value”方法
而不是
jQuery("#slider-range-min").slider("option",{
max: max,
value: value
})使用
jQuery("#slider-range-min").slider("option","max", max).slider("value", value);https://stackoverflow.com/questions/4406919
复制相似问题