Я хочу сделать оператор switch для моей функции перетаскивания. В основном хотите, чтобы можно было щелкнуть одну из четырех кнопок, указанных ниже, и переключить функцию перетаскивания и цвета на цвет кнопки.
Обновление, я теперь это сделал 27/04
<script>
var box;
var boxArray;
var backgroundColor;
var text;
boxArray = [];
box = document.getElementsByClassName("sidebar");
for ( var i = 0; i < box.length; i++ ) (function(i){
box[i].onmousemove = function(e) {
if(e.buttons == 1)
box[i].style.backgroundColor = backgroundColor, box[i].innerHTML = text, box[i].style.fontSize = "10px", box[i].style.padding = "4px";
}
})(i);
document.addEventListener("contextmenu", function (e) {
e.preventDefault();
}, false);
function changeColor(color){
switch(color) {
case 'o' :
backgroundColor = "orange";
text = "08:00-16:30";
break;
case 'r' :
backgroundColor = "red";
text ="08:30-17:00";
break;
case 'g' :
backgroundColor = "green";
text ="09:00-17:30";
break;
case 'p' :
backgroundColor = "purple";
text ="09:00-17:30";
}
}
Я только сейчас это проработал -
<script>
var box;
var boxArray;
var backgroundColor;
var text;
boxArray = [];
box = document.getElementsByClassName("sidebar");
for ( var i = 0; i < box.length; i++ ) (function(i){
box[i].onmousemove = function(e) {
if(e.buttons == 1)
box[i].style.backgroundColor = backgroundColor, box[i].innerHTML = text, box[i].style.fontSize = "10px", box[i].style.padding = "4px";
}
})(i);
document.addEventListener("contextmenu", function (e) {
e.preventDefault();
}, false);
function changeColor(color){
switch(color) {
case 'o' :
backgroundColor = "orange";
text = "08:00-16:30";
break;
case 'r' :
backgroundColor = "red";
text ="08:30-17:00";
break;
case 'g' :
backgroundColor = "green";
text ="09:00-17:30";
break;
case 'p' :
backgroundColor = "purple";
text ="09:00-17:30";
}
}
</script>
Вы переключаете оператор синтаксически неправильно. Вам нужно указать аргумент, который вы хотите сравнить с случаями вашего коммутатора, и внутри оператора switch вы не используете фигурные скобки.
Что-то вроде этого:
switch (color) {
case "o":
backgroundColor = "orange";
break;
case "r":
backgroundColor = "red";
break;
case "g":
backgroundColor = "green";
break;
case "p":
backgroundColor = "purple";
break;
}
Обратите внимание, что "o", "r", "g" и "p" находятся в кавычках, потому что они являются строковыми значениями, если вы опускаете кавычки, как это было в вашем примере кода, JavaScript будет интерпретировать их как переменные, которые будет просто неопределенным.
onclick="changeColor('o')"
, тамchangeColor
будет именем функции, которую вы вызываете при нажатии кнопки, а'o'
является аргумент, который вы предоставляете, т.е. цветовой код