【问题标题】:<input> range slider not resetting the color value<input> 范围滑块不重置颜色值
【发布时间】:2018-06-11 18:25:25
【问题描述】:

重置前的滑块在这个位置:(拇指和颜色都在正确的位置)

重置前:

HTML

<input id="xyzslider" class="mdl-slider mdl-js-slider" type="range" min="0.0" max="1.0" value="0.0" step="0.05" tabindex="20">

jQuery

$("#xyzslider").val(value);

重置后:

这是我的问题。滑块滑块重置为最小值,但滑块表示的颜色值仍为 0.6。

在此之后,我按以下方式重置滑块。

jQuery

$("#xyzslider").val(minValue);

我的代码如下。这里可能是什么问题?为什么滑块颜色值没有被重置?任何帮助都是无价的。

$("#xyzslider").val(0.6);

$("#clickme").click(function() {
  $("#xyzslider").val(0.0);
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">

<br>
<input type="button" id="clickme" value="Click Me To Reset Slider">
<input id="xyzslider" class="mdl-slider mdl-js-slider" type="range" min="0.0" max="1.0" value="0.0" step="0.05" tabindex="20">

View on JSFiddle

【问题讨论】:

标签: javascript jquery html css slider


【解决方案1】:

根据mdl滑块的描述 "虽然value属性是用来设置滑块的初始值的,但不应该用程序来修改值;而是使用MDL的change()方法。例如,假设slider1是滑块对象,newvalue是一个包含所需值的变量,不要使用slider1.value = newvalue;而是使用slider1.MaterialSlider.change(newvalue)"

https://getmdl.io/components/#sliders-section

所以更新你的代码

$("#xyzslider")[0].MaterialSlider.change(minValue);

在 jsfiddle 中更新: https://jsfiddle.net/qahf2wuL/12/

【讨论】:

  • 您好,这对我不起作用。我收到以下错误。 “无法读取未定义的属性‘更改’”,即 MaterialSlider 未定义。 “MaterialSlider”的定义在哪里?我如何让 Jquery 知道它?
  • 您更新的JSFiddle @AlexS 指出。
  • 嗨,为什么要使用 $("#xyzslider")[0] 而不是 $("#xyzslider") ?
  • MaterialSlider 不是 jQuery 的模块,它直接用于 DOM 对象
猜你喜欢
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
  • 2021-06-14
  • 2019-05-12
相关资源
最近更新 更多