Переключить цвет заявления -

1

Я хочу сделать оператор switch для моей функции перетаскивания. В основном хотите, чтобы можно было щелкнуть одну из четырех кнопок, указанных ниже, и переключить функцию перетаскивания и цвета на цвет кнопки.

  • Обновление, я теперь это сделал 27/04


    08: 00-16: 30 08: 30-17: 00 09: 00-17: 30 09: 30-18: 00 Собрать
      <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";
        }
      }
    
Теги:
switch-statement
colors
drag

2 ответа

0

Я только сейчас это проработал -

      <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>
0

Вы переключаете оператор синтаксически неправильно. Вам нужно указать аргумент, который вы хотите сравнить с случаями вашего коммутатора, и внутри оператора 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 будет интерпретировать их как переменные, которые будет просто неопределенным.

  • 0
    Удачи. Есть несколько других ошибок, которые вы допустили в своем коде, если честно, их слишком много, чтобы их можно было исправить в моем ответе. Для начала, атрибут onclick в кнопках должен быть записан следующим образом: onclick="changeColor('o')" , там changeColor будет именем функции, которую вы вызываете при нажатии кнопки, а 'o' является аргумент, который вы предоставляете, т.е. цветовой код
  • 1
    Привет, я разработал это и спасибо за ваш комментарий и помощь -

Ещё вопросы

Сообщество Overcoder
Наверх
Меню