Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2016, 02:47
Аспирант
Отправить личное сообщение для Pobedill Посмотреть профиль Найти все сообщения от Pobedill
 
Регистрация: 10.02.2016
Сообщений: 46

Помогите, мужики! Есть один скрипт и много кнопок с разными ID
Есть код кнопок (будет 1500 шт)
<span id="phone1" class="phone" onclick="this.style.display='none'; javascript:setrate(2)">+380 XXX XX XX</span>
<div id="phone1a" class="phone2">+380 111 11 11</div>

<span id="phone2" class="phone" onclick="this.style.display='none'; javascript:setrate(2)">+380 XXX XX XX</span>
<div id="phone2a" class="phone2">+380 222 22 22</div>

<span id="phone3" class="phone" onclick="this.style.display='none'; javascript:setrate(2)">+380 XXX XX XX</span>
<div id="phone3a" class="phone2">+380 333 33 33</div>


А вот скрипт для первой кнопки. Как не писать код 1500 раз?
<!--открыть контакты-->
  <script type="text/javascript">
$(document).ready(function() 
  {
  var flag=true;
  $("#phone1").click(function()
    {
      if(flag==true)
      {
        $("#phone1a").slideToggle();
        flag=!flag;
      }
  });
});
</script>

Спасибо заранее!

Последний раз редактировалось Pobedill, 10.02.2016 в 13:33.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2016, 05:17
Аспирант
Отправить личное сообщение для Pobedill Посмотреть профиль Найти все сообщения от Pobedill
 
Регистрация: 10.02.2016
Сообщений: 46

Сделал так, но хочется меньше кода.
<!--открыть контакты-->
  <script type="text/javascript">
$(document).ready(function() 
  {
  var flag=true;
  $("#phone1").click(function()
    {
      if(flag==true)
      {
        $("#phone1a").slideToggle();
        flag=!flag;
      }
  });
});
$(document).ready(function() 
  {
  var flag=true;
  $("#phone2").click(function()
    {
      if(flag==true)
      {
        $("#phone2a").slideToggle();
        flag=!flag;
      }
  });
});
$(document).ready(function() 
  {
  var flag=true;
  $("#phone3").click(function()
    {
      if(flag==true)
      {
        $("#phone3a").slideToggle();
        flag=!flag;
      }
  });
});
$(document).ready(function() 
  {
  var flag=true;
  $("#phone4").click(function()
    {
      if(flag==true)
      {
        $("#phone4a").slideToggle();
        flag=!flag;
      }
  });
});
$(document).ready(function() 
  {
  var flag=true;
  $("#phone5").click(function()
    {
      if(flag==true)
      {
        $("#phone5a").slideToggle();
        flag=!flag;
      }
  });
});
</script>

Последний раз редактировалось Pobedill, 10.02.2016 в 13:34.
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2016, 08:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Pobedill,
забить в поиск по форуму открывашка и найти более 200 вариантов решения вашей проблемы.
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2016, 15:02
Аспирант
Отправить личное сообщение для Pobedill Посмотреть профиль Найти все сообщения от Pobedill
 
Регистрация: 10.02.2016
Сообщений: 46

Я еще не разбираюсь в скриптах, поэтому поиск мне ничего не дал(((
Помогите, пожалуйста...

Последний раз редактировалось Pobedill, 21.03.2016 в 18:19.
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2016, 15:54
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

На сколько я понял у вас суть задачи такая: есть два номера, если флаг, установленный по каким то соображением, есть, показать один номер, если нет то другой. Что-то вроде такого. Так вот, мне кажется самое элементарное Jquery использовать не по id, а по классу. Допустим для всех номеров одного типа завести класс class1, а остальные class2. Мне кажется это будет проще.

Так у Вас даже уже классы есть. Используйте так:

$(document).ready(function()
  {
 var flag=true;
  $(".phone").click(function()
    {
      if(flag==true)
      {
        $(".phone2").slideToggle();
        flag=!flag;
      }
  });
});

Последний раз редактировалось AciDWarrioR, 10.02.2016 в 15:58.
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2016, 17:57
Аспирант
Отправить личное сообщение для Pobedill Посмотреть профиль Найти все сообщения от Pobedill
 
Регистрация: 10.02.2016
Сообщений: 46

Спасибо за ответ. Применил ваш код. Убрал id.. Теперь при клике по первому номеру раскрываются второй и третий спойлер.
<div class="phone" onclick="this.style.display='none'; javascript:setrate(1)">+380 XXX XX XX</div>
<div class="phone2">+380 111 11 11</div>

<div class="phone" onclick="this.style.display='none'; javascript:setrate(2)">+380 XXX XX XX</div>
<div class="phone2">+380 222 22 22</div>

<div class="phone" onclick="this.style.display='none'; javascript:setrate(3)">+380 XXX XX XX</div>
<div class="phone2">+380 333 33 33</div>
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2016, 18:43
Аспирант
Отправить личное сообщение для Pobedill Посмотреть профиль Найти все сообщения от Pobedill
 
Регистрация: 10.02.2016
Сообщений: 46

Помог другой спойлер
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2016, 22:07
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Pobedill,
Проблема решена?

Просто вы не описывали свою задачу конкретно, а спросили как избежать того, чтобы не писать скрипт 1500 тысячи раз.
Кстати, второй вариант для таких задач, создать цикл. Описываем функцию выполнения вашего скрипта, создаем цикл, пробегающим по всем кнопкам, в котором выполняется эта функция, но тут надо более конкретную постановку задачи, иначе может получится бяка.

Последний раз редактировалось AciDWarrioR, 10.02.2016 в 23:19.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
один javaскрипт код на странице много раз Animemia Общие вопросы Javascript 23 04.02.2013 21:18
Помогите настроить скрипт раскрывающегося меню melomanfm Работа 6 10.08.2009 01:21
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37