javascript - jQuery UI Slider 更新步骤属性但不起作用
问题描述
我正在使用一个名为asRange的 jQuery 范围滑块插件
它工作得很好,但是当我使用条件语句更新step属性时,它正在更新 DOM 中的值,但没有按预期工作。当范围值小于 1 时,我需要步长值为“0.001”,当范围值大于 1 时,步长值为“1”。
如果您使用开发人员工具检查 DOM 元素,您将看到 step 值正在正确更新,但没有正常工作。
我已经尝试了几个小时了。找不到任何东西。任何形式的帮助将不胜感激。
<input class="range-slider" type="range" min="0.007" max="10" name="price" step="0.001" />
<script>
$(document).ready(function() {
$(".range-slider").asRange();
$(".range-slider").on('asRange::change', function (e) {
var val = $(".range-slider").asRange('get');
if (val > 1)
{
$(".range-slider").attr("step" , "1");
}
else if (val <= 1)
{
$(".range-slider").attr("step" , "0.001");
}
});
});
</script>
解决方案
改用库的更新方法:
$(document).ready(function() {
$(".range-slider").asRange();
$(".range-slider").on('asRange::change', function(e) {
var val = $(".range-slider").asRange('get');
if (val > 1) {
$(".range-slider").asRange('update', { step: 1 }); // Here
} else if (val <= 1) {
$(".range-slider").asRange('update', { step: 0.001 }); // And Here
}
});
});
DOM 元素不再更新对象 asRange,那么,当您更改 DOM 元素时,将不会反映 asRange 创建的对象。
推荐阅读
- java - 春季批量回滚所有步骤以防出现异常
- javascript - 单击“加载更多”按钮时如何找到下一个页面链接?
- javascript - JQuery / Laravel - 启用输入文本
- reactjs - 显示索引目录列表而不是应用程序
- html - 始终定位底部页脚
- java - Android Studio 上带有 mXparser.jar 的 DexArchiveBuilderException
- html - 将图像拖放到 SVG 元素的顶部
- reactjs - 如何在 setState 函数中使用回调函数
- crashlytics - 如何从 crashalytics 下载最近 3 个月的崩溃日志(日期时间、用户 ID、崩溃 ID)?
- android - 为什么我的进度条不能正常工作?