设置 jQuery 滑块的默认值,并在需要时覆盖
Set default value for jQuery slider and override when needed
背景:我目前在我的网站上有一个工作的jQuery滑块,在我的.js文件中
$( "#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"。如果可以避免的话,我宁愿不必将值复制并粘贴到我的所有页面上......似乎不是一个"好"的方法?
问题:有没有更好的方法来执行此操作 - 这样我就可以为我的滑块设置默认值,但偶尔在需要时覆盖它?
编辑:另一种说法:如何使滑块默认为"100",除非我在html页面中另有说明?
在包含在
每个页面中的js文件中定义它
在你的
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。
如果你试图最小化变量,你可以随时检查
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
您可以使用此字符串覆盖滑块的选项。 $('#slider-range-min'(.slider({value: 50}(;
全局声明变量以在网页中的任何位置访问它。 这是教程链接。
尝试声明没有 var 关键字的变量以使其全局
<script type="text/javascript">
_Slider_Value = 50;
</script>
如果这不起作用,请尝试将变量绑定到窗口对象
var myValue;
function setValue()
{
myValue = "test";
}
function getValue()
{
alert(window.myValue); // yup, it's "test"
}
这是完整的解释,我从中给出了例子。
希望它有效(没有实际尝试(
相关文章:
- 覆盖Jquery's函数
- 如何覆盖jQuery所选元素的“click”事件
- 如何覆盖jQuery-ui-sortable的拖动事件
- 覆盖 jquery .load() 函数 - 处理回调
- 覆盖 jQuery 的 .load 函数
- jquery.mobile 覆盖 Jquery UI 主题:
- 如何在屏幕大小更改时覆盖 jquery 滑块切换
- 如何用html5数据属性覆盖jquery插件选项
- 如何覆盖jQuery promise回调
- 如何正确覆盖jquery ui自动完成
- 内联onclick正在覆盖JQuery click()
- 当尝试使用touchOverflowEnabled覆盖jQuery Mobile默认设置时,页面加载了两次
- 移动设备上没有滚动体的全屏覆盖(jquery mobile)
- 在哪里定义悬停类/行为来覆盖jquery的主题CSS
- 如何覆盖Jquery自动完成的用户输入
- 覆盖jQuery ajax +点击进入完成功能
- 覆盖jQuery插件的设置
- 类并覆盖JQuery事件处理程序
- 如何覆盖jquery _blank
- 覆盖jQuery方法$.POST