设置jQuery滑块的默认值并在需要时覆盖

时间:2012-05-16 08:40:46

标签: javascript jquery

背景:我目前在我的.js文件中的网站上有一个工作 jQuery滑块

$( "#slider-range-min" ).slider({
      range: "min",
      value: 100,
      min: 1,
      max: 100,
    });

我需要能够有时将“值”从100覆盖到某个其他值。所以我尝试了这个:

$( "#slider-range-min" ).slider({
      range: "min",
      value: _Slider_Value,
      min: 1,
      max: 100,
    });

并在我的html页面上定义了这个

<script type="text/javascript">  
    var _Slider_Value = 50;
</script>

哪个也有效! 除了然后在所有其他页面上我收到一条javascript错误,指出“_Slider_Value未定义”。我宁愿不必复制和放弃如果我可以避免它,请将值粘贴到我的所有页面上......看起来不是一个“好”的方法吗?

问题:有更好的方法吗 - 所以我可以为我的滑块设置默认值,但偶尔会在需要时覆盖它?

编辑:另一种说法:除非我在html页面中另有说明,否则如何将我的滑块默认为“100”?

5 个答案:

答案 0 :(得分:2)

在您的html中span放置div容器中有滑块的位置(id="slider-range-min"

<span class="min">100</span> 

在滑块功能中读取此值

$( "#slider-range-min" ).slider({
      range: "min",
      value: $(this).find('.min').text();,
      min: 1,
      max: 100,
    });

无论何时需要在页面上更新值,如果需要,动态更改范围值,否则它将采用默认值,例如。 100这里。

答案 1 :(得分:2)

在每个页面中包含的js文件中定义

答案 2 :(得分:2)

如果您尝试最小化变量,可以随时检查

if (_Slider_Value != undefined) {
    //your code here
}

(_Slider_Value != undefined) ? _Slider_Value : 100;

所以你的最终代码可以是

$( "#slider-range-min" ).slider({
  range: "min",
  value: (_Slider_Value != undefined) ? _Slider_Value : 100,
  min: 1,
  max: 100,
});

如果_Slider_Value

中没有值,则默认为100

答案 3 :(得分:1)

您可以使用此字符串覆盖滑块的选项。               $('#slider-range-min')。slider({value:50});

答案 4 :(得分:1)

全局声明您的变量以在网页中的任何位置访问它。这是tutorial link

尝试声明不带var关键字的变量以使其成为全局

<script type="text/javascript">  
    _Slider_Value = 50;
</script>

如果这不起作用,请尝试将变量绑定到窗口对象

var myValue;
function setValue()
{
    myValue = "test";
}

function getValue()
{
    alert(window.myValue); // yup, it's "test"
}

这里是完整的explanation,我已经举例说明。

希望它有效(不是实际尝试)