【发布时间】:2022-02-10 17:04:32
【问题描述】:
我有一个 HTML5“范围”控件,我想在其两侧添加一个加号 (+) 和减号 (-) 按钮。
小提琴工作正常,除了值在'单击并按住'时仅增加(或减少)一次。 虽然我想要的是它应该不断增加(或减少)。
HTML,
<input type='button' id='minus'/>
<div class='range-container'>
<input id='range' type='range' min='0' max='100' step='1'/>
</div>
<input type='button' id='plus'/>
JavaScript,
$('#plus').click(function() {
$('#range').val(parseInt($('#range').val()) + 1);
});
$('#minus').click(function() {
$('#range').val(parseInt($('#range').val()) - 1);
});
HTML5 'number' 控件原生就有这种体验。
浏览了SO,在任何地方都找不到这个问题。我得到的最接近的是this,它再次只需单击一次。
【问题讨论】:
-
使用 setInterval 在鼠标按下时连续运行函数。该函数的增量。清除 mouseup 的间隔并在 mousedown 时启动它。
-
@SergiuParaschiv 谢谢,会尝试。不过,我希望有一个更“原生”/jQuery 的解决方案,因为它支持数字控制。
-
@SergiuParaschiv 其实没那么简单。有很多附加条件。主要检测
click与mousedown并在没有mouseup事件时做正确的事情,因为鼠标已经移出按钮。其次,会找到有效的延迟和缓和,并使整个事情独立于数字范围。 -
显然。这就是为什么我没有将其发布为答案。这是一个起点。
标签: javascript jquery html