ЭНЦИКЛОПЕДИЯ СОВРЕМЕННОГО САЙТОСТРОЕНИЯ

Решено Помогите с простейшим жаба-скриптом

Тема в разделе "Код JavaScript", создана пользователем Алексей, 6 янв 2016.

  1. Алексей

    Алексей Гуру Команда форума Эксперт

    Сообщения:
    367
    Рейтинг:
    151
    Ситуация в следующем: есть элемент, точнее, столбец таблицы, который скрывается и показывается по нажатию кнопки.
    HTML:
    <table>
         <tr>
              <td>Столбец 1</td>
         </tr>
    
         <tr>
              <td>Кнопка "Скрыть/показать первый столбец"</td>
         </tr>
    
         <tr>
              <td>Столбец 2</td>
         </tr>
    </table>
    В общем, при нажатии на второй столбец первый исчезает. Реализовано всё это дело при помощи JS:

    Код:
    <script type="text/javascript">
    function openbox(id){
        display = document.getElementById(id).style.display;
        if(display=='none'){
           document.getElementById(id).style.display='block';
        }else{
           document.getElementById(id).style.display='none';
        }
    }
    </script>
    Проблема в следующем: при окне шириной менее 700px, столбец 1 получает в CSS свойство "display:none;". Кнопка при этом остаётся рабочей, но для того, чтобы развернуть скрытую область приходится делать два клика мыши, а не один.

    Как понимаю, всё дело в условиях скрипта, но как его изменить, чтобы всё работало с первого раза?
     
    #1
  2. Загрузка...
  3. Мефистофель

    Мефистофель Гуру Команда форума Эксперт

    Сообщения:
    398
    Рейтинг:
    198
    Род занятий:
    Интернет-маркетинг
    Откуда:
    Новосибирск
    А попробуй просто убрать условие, при котором будет скрываться столбец, то есть отображение объекта уходить на ноль. Я об этом: столбец 1 получает в CSS свойство "display:none;"

    К тому же у тебя переменные нормально прописаны? Для каждого айди пропиши условие, при котором он должен отображаться всегда.
     
    #2
    Алексей нравится это.
  4. Алексей

    Алексей Гуру Команда форума Эксперт

    Сообщения:
    367
    Рейтинг:
    151
    @Мефистофель, в JS я не особо силён. Беру готовые решения и перепиливаю их под себя. ИМХО, здесь просто нужно добавить логический оператор или что-то типа того. 1) Если display=none, то при нажатии делаем display=block; 2) И если всё наоборот
     
    #3
  5. Алексей

    Алексей Гуру Команда форума Эксперт

    Сообщения:
    367
    Рейтинг:
    151
    Проблема неактуальна. Прошли дни и месяцы. Освоился с ява-скриптом)
    Вот скрипт. XXXX - название функции. YYYY - название блока, который прячем/скрываем.
    Код:
    <script type="text/javascript">
     function XXXX() {
     obj = document.getElementById("YYYY");
     if( obj.style.display == "block" ) { obj.style.display = "none"; } else { obj.style.display = "block"; }
     }
     </script>
    А это - кнопка
    Код:
    <a href="javascript:XXXX()" id="ID если нужен">ЙА-КНОПКО</a>
    Сам же блок, который прячем-скрываем - абсолютно любая фигня.
     
    #4