Помогите, мужики! Есть один скрипт и много кнопок с разными 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> Спасибо заранее! |
Сделал так, но хочется меньше кода.
<!--открыть контакты--> <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,
забить в поиск по форуму открывашка и найти более 200 вариантов решения вашей проблемы. Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Я еще не разбираюсь в скриптах, поэтому поиск мне ничего не дал(((
Помогите, пожалуйста... |
На сколько я понял у вас суть задачи такая: есть два номера, если флаг, установленный по каким то соображением, есть, показать один номер, если нет то другой. Что-то вроде такого. Так вот, мне кажется самое элементарное Jquery использовать не по id, а по классу. Допустим для всех номеров одного типа завести класс class1, а остальные class2. Мне кажется это будет проще.
Так у Вас даже уже классы есть. Используйте так: $(document).ready(function() { var flag=true; $(".phone").click(function() { if(flag==true) { $(".phone2").slideToggle(); flag=!flag; } }); }); |
Спасибо за ответ. Применил ваш код. Убрал 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> |
Помог другой спойлер
|
Pobedill,
Проблема решена? Просто вы не описывали свою задачу конкретно, а спросили как избежать того, чтобы не писать скрипт 1500 тысячи раз. Кстати, второй вариант для таких задач, создать цикл. Описываем функцию выполнения вашего скрипта, создаем цикл, пробегающим по всем кнопкам, в котором выполняется эта функция, но тут надо более конкретную постановку задачи, иначе может получится бяка. |
Часовой пояс GMT +3, время: 12:55. |