按下shift键时,我正在尝试同步两个滑块。 但是,问题是范围输入事件未定义e.shiftKey。
我尝试使用onmousedown事件,它会报告e.shiftKey,但它没有正确设置范围值。
如何检测是否在范围输入上按下了shift键?
$('input[type=range]').on("input",function(e){
$('#value').text(this.value);
if(e.shiftKey){
var newValue = this.value;
$('input[type=range]').each(function(){this.value=newValue});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<input type="range">
<input type="range">
<span id="value"></span>
</body>
</html>
(jQuery是可选的,只是为了方便而使用它)
答案 0 :(得分:1)
无论点击范围输入如何,都应该检查shiftKey:
var sync = false;
$(document).on('keydown', function(e) {
if (e.shiftKey) {
sync = true;
}
});
$(document).on('keyup', function(e) {
if (e.shiftKey == false) {
sync = false;
}
});
$('input[type=range]').on("input",function(e){
$('#value').text(this.value);
if (sync) {
var newValue = this.value;
$('input[type=range]').each(function(){this.value=newValue});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<input type="range">
<input type="range">
<span id="value"></span>
</body>
</html>