javascript - 指定哪个范围输入受哪个文本输入影响,反之亦然
问题描述
我正在设置一个带有范围的页面,我希望它“链接”到一个数字输入框。这些都改变了 div 的字体大小。因此,随着范围滑块或数字输入的更改,另一个更改以匹配并且字体大小增加/减小。
当页面上只有一个实例时,这一切都有效。当我添加 2 时,它不知道应该匹配什么。目前,两个范围滑块都改变了第二个数字框,但都没有改变第一个数字框。
如何在函数 changeRangeValue 中指定要更改的范围和 changeInputValue 哪个输入?先感谢您!
$('#sliderA').on('input', function() {
var v = $(this).val();
$('#textA').css('font-size', v + 'px')
$('#numericA').html(v);
});
function showValue1(newValue) {
document.getElementById("numericA").innerHTML = newValue;
}
function changeRangeValue(val) {
document.getElementById("sliderA").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
}
function changeInputValue(val) {
document.getElementById("numericA").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
}
$('#sliderB').on('input', function() {
var v = $(this).val();
$('#textB').css('font-size', v + 'px')
$('#numericB').html(v);
});
function showValue1(newValue) {
document.getElementById("numericB").innerHTML = newValue;
}
function changeRangeValue(val) {
document.getElementById("sliderB").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
}
function changeInputValue(val) {
document.getElementById("numericB").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> <span>Size:</span>
<input type="number" id="numericA" value="16" min="10" max="40" onkeyup="changeRangeValue(this.value)" /><span> px</span>
<input type="range" id="sliderA" value="16" min="10" max="40" oninput="changeInputValue(this.value)" /></div>
</div>
<div id="textA">To be changed by first range slider/number box. </div>
<div> <span>Size:</span>
<input type="number" id="numericB" value="16" min="10" max="40" onkeyup="changeRangeValue(this.value)" /><span> px</span>
<input type="range" id="sliderB" value="16" min="10" max="40" oninput="changeInputValue(this.value)" /></div>
</div>
<div id="textB">To be changed by second range slider/number box.</div>
解决方案
您的函数使用相同的名称重复了两次。
您也仅在滑块值更改时更新字体大小,我更改了代码以更新输入上的字体大小。
像这样:
function updateA(){
var v = $('#sliderA').val();
$('#textA').css('font-size', v + 'px')
}
function showValue1(newValue) {
document.getElementById("numericA").innerHTML = newValue;
}
function changeRangeValueA(val) {
document.getElementById("sliderA").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
updateA();
}
function changeInputValueA(val) {
document.getElementById("numericA").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue1(val);
updateA();
}
function updateB(){
var v = $('#sliderB').val();
$('#textB').css('font-size', v + 'px')
}
function showValue2(newValue) {
document.getElementById("numericB").innerHTML = newValue;
}
function changeRangeValueB(val) {
document.getElementById("sliderB").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue2(val);
updateB();
}
function changeInputValueB(val) {
document.getElementById("numericB").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
showValue2(val);
updateB();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> <span>Size:</span>
<input type="number" id="numericA" value="16" min="10" max="40" onkeyup="changeRangeValueA(this.value)" /><span> px</span>
<input type="range" id="sliderA" value="16" min="10" max="40" oninput="changeInputValueA(this.value)" /></div>
</div>
<div id="textA">To be changed by first range slider/number box. </div>
<div> <span>Size:</span>
<input type="number" id="numericB" value="16" min="10" max="40" onkeyup="changeRangeValueB(this.value)" /><span> px</span>
<input type="range" id="sliderB" value="16" min="10" max="40" oninput="changeInputValueB(this.value)" /></div>
</div>
<div id="textB">To be changed by second range slider/number box.</div>
推荐阅读
- python - py_call_impl 和 com_error 中的错误:用于 reticulate 的 RPC
- webhooks - 如何在工单的受让人更新/更改时触发 webhook
- rust - 如何匹配宏中的元组
- python - Python Selenium 无法定位元素?
- apache-kafka - Kafka Topic 分区重新分配时,Flink 作业连续失败
- c# - 在 asp.net mvc 中打印有效的字符串数组
- shopify - 将可拖动的 png 添加到主页
- openwrt - 如何将dnp3包安装到openwrt?
- windows - 适用于 Windows 32 的最新 gnuplot
- python - 通过 ax 参数在一个图中绘制 6 个不同的散点图 - 不起作用