Может ли кто-нибудь помочь мне с этим проектом, над которым я работаю? Я хочу выбрать один из двух элементов div (KgDiv, LDiv), щелкнув его, затем с помощью ползунка выберите значение от 0 до максимального значения абзаца «Килограммы/Литры», а затем с помощью кнопки «Продать» преобразовать кг или L к € по курсу 1 к 1. Также рядом с ползунком должно отображаться количество (кг или л), выбранное с помощью ползунка.
var KilogramsV = 0;
var LitersV = 0;
function AddKg() {
KilogramsV += 400;
document.getElementById("Kilograms").innerHTML = KilogramsV + " " + "Kilograms";
}
function AddL() {
LitersV += 340;
document.getElementById("Liters").innerHTML = LitersV + " " + "Liters";
}<div id = "KgDiv">
<p id = "Kilograms">Kilograms</p>
<input type = "button" onClick = "AddKg()" value = "+400Kg"></input>
</div>
<div id = "LDiv">
<p id = "Liters">Liters</p>
<input type = "button" onClick = "AddL()" value = "+340L"></input>
</div>
<input type = "button" onClick = "Sell()" value = "Sell"></input>
<p id = "Money">€ 0</p>
<input id = "SlideBar" type = "range" min = "0" max = "100" value = "50"></input>Это то, что у меня есть до сих пор. Спасибо!
Я смотрел видео, но не нашел ничего полезного.
Общее примечание: элементы ввода являются самозакрывающимися. Закрывающий тег не нужен, он должен быть либо <input/>, либо просто <input>.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Все, что я добавил в ваш код, это то, что он показывает значение ползунка под ползунком.
var KilogramsV = 0;
var LitersV = 0;
var sliderValue = 0;
function AddKg() {
KilogramsV += 400;
document.getElementById("Kilograms").innerHTML = KilogramsV + " " + "Kilograms";
}
function AddL() {
LitersV += 340;
document.getElementById("Liters").innerHTML = LitersV + " " + "Liters";
}
function sliderChange(val) {
document.getElementById('slider').innerHTML = val;
sliderValue = val;
}<div id = "KgDiv">
<p id = "Kilograms">Kilograms</p>
<input type = "button" onClick = "AddKg()" value = "+400Kg"></input>
</div>
<div id = "LDiv">
<p id = "Liters">Liters</p>
<input type = "button" onClick = "AddL()" value = "+340L"></input>
</div>
<input type = "button" onClick = "Sell()" value = "Sell"></input>
<p id = "Money">€ 0</p>
<input id = "SlideBar" type = "range" min = "0" max = "100" value = "50" oninput = "sliderChange(this.value)"></input>
<p id = "slider"> 50 </p>Чтобы достичь вашей цели, нам следует изменить ваш код и добавить еще немного JavaScript.
var kilogramsV = 0;
var litersV = 0;
var selectedType = 'kg'; // Default selection
function addKg() {
kilogramsV += 400;
document.getElementById("Kilograms").innerHTML = kilogramsV + " Kilograms";
if (selectedType === 'kg') {
updateSliderMax(kilogramsV);
}
}
function addL() {
litersV += 340;
document.getElementById("Liters").innerHTML = litersV + " Liters";
if (selectedType === 'l') {
updateSliderMax(litersV);
}
}
function selectType(type) {
selectedType = type;
const selectionText = type === 'kg' ? 'Kilograms' : 'Liters';
document.getElementById("ActiveSelection").innerHTML = `Active: ${selectionText}`;
updateSliderMax(type === 'kg' ? kilogramsV : litersV);
}
function updateSliderMax(maxValue) {
document.getElementById("SlideBar").max = maxValue;
document.getElementById("SlideBar").value = 0; // Reset the slider value
updateQuantity(0); // Reset the displayed quantity
}
function updateQuantity(value) {
document.getElementById("SelectedQuantity").innerHTML = `Selected: ${value} ${selectedType.toUpperCase()}`;
}
function sell() {
var quantity = document.getElementById("SlideBar").value;
var money = parseInt(quantity); // Since 1 kg/l = 1 €
document.getElementById("Money").innerHTML = '€ ' + money;
}<div id = "KgDiv" onclick = "selectType('kg')">
<p id = "Kilograms">Kilograms</p>
<input type = "button" onclick = "addKg()" value = "+400Kg">
</div>
<div id = "LDiv" onclick = "selectType('l')">
<p id = "Liters">Liters</p>
<input type = "button" onclick = "addL()" value = "+340L">
</div>
<p id = "SelectedQuantity">Selected: 0 Kg</p>
<input type = "button" onclick = "sell()" value = "Sell">
<p id = "Money">€ 0</p>
<p id = "ActiveSelection">Active: None</p> <!-- Indicates active selection -->
<input id = "SlideBar" type = "range" min = "0" max = "100" value = "0" oninput = "updateQuantity(this.value)">selectType(type) функция устанавливает, какой тип устройства является активным, и распечатывает его конечному пользователю.updateSliderMax(maxValue) функция обновляет максимальное значение ползунка на основе общей суммы выбранного типа и сбрасывает отображение ползунка и выбранного количества.updateQuantity(value) обновляет текст рядом с ползунком, чтобы отобразить выбранное в данный момент количество вместе с правильной единицей измерения (кг или л).sell() конвертирует выбранное количество в евро по курсу 1:1 и обновляет пункт «Деньги», чтобы отобразить общую сумму в евро.
Добро пожаловать в Stack Overflow! Каким образом ваш код не работает должным образом? Пожалуйста, подробно опишите конкретную проблему, которую вы наблюдаете, и какие отладки вы сделали. Чтобы узнать больше об этом сообществе и о том, как мы можем вам помочь, начните с тура и прочитайте Как спросить и связанные с ним ресурсы.