Помогите, мужики! Есть один скрипт и много кнопок с разными 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, время: 00:49. |