Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 3
1

Поменять тексты при клике на ссылки

15.04.2010, 17:55. Показов 6494. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Помогите мне, пожалуйста!

Я написала скрипт, но уж очень он огромный и неудобный. Уверена, что можно сократить. Подскажите, пожалуйста.

Есть ссылки, при клике на которые открывается текст, меняется цвет шрифта активной ссылки, и также происходит с остальными. Один текст открывается, остальные закрываются

Вот, что у меня получилось

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<a href="javascript:void()" id="l1" style="color:red;" onclick="ChangeText1">Ссылка 1</a>
<a href="javascript:void()" id="l2" onclick="ChangeText2">Ссылка 2</a>
<a href="javascript:void()" id="l3" onclick="ChangeText3">Ссылка 3</a>
 
<div class="text1" id="t1">Текст 1</div>
<div class="text1" id="t1" style="display:none;">Текст 2</div>
<div class="text1" id="t1" style="display:none;">Текст 3</div>
 
function ChangeText1(){
document.getElementById("l1").style.color = "#de1800";
document.getElementById("l2").style.color = "#5a5d60";
document.getElementById("l3").style.color = "#5a5d60";
 
document.getElementById("text1").style.display = "";
document.getElementById("text2").style.display = "none";
document.getElementById("text3").style.display = "none";
}
 
function ChangeText2(){
document.getElementById("l2").style.color = "#de1800";
document.getElementById("l1").style.color = "#5a5d60";
document.getElementById("l3").style.color = "#5a5d60";
 
document.getElementById("text1").style.display = "none";
document.getElementById("text2").style.display = "";
document.getElementById("text3").style.display = "none";
}
И также для 3й сслыки, а у меня их 10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2010, 17:55
Ответы с готовыми решениями:

Всплывающая реклама при клике на ссылки
Здравствуйте, суть проблемы в следующем: время от времени (примерно каждые минут 20) наступает...

При клике на ссылки открывается вкладка с рекламой
При клике на ссылки открывается вкладка с рекламой Вечер добрый! С недавнего времени...

Chrome - открываются вкладки при клике на ссылки
Добрый вечер! Распаковали архив зараженный, засела какая-то штука. С некой периодичностью при...

В браузере открыаются ссылки при клике на любое место
Очень часто открываются вкладки и окна с рекламой при клике мышкой, не обязательно по...

6
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
15.04.2010, 18:28 2
можно попробывать так

Javascript
1
2
3
4
5
6
7
8
9
10
11
function ChangeText1(){
 
document.getElementById("l1").style.color = "#de1800";
document.getElementById("text1").style.display = "";
 
for (var i=2; i<=3;i++)
{
document.getElementById("l"+i).style.color = "#5a5d60";
document.getElementById("text"+i).style.display = "none";
}
}
Добавлено через 10 минут
но лутше вот так:

HTML5
1
<a href="javascript:void()" id="l2" onclick="ChangeText('2')">Ссылка 2</a>
у каждой такой стороке прописіваете такую функцию, только с соответствующим параметром... тогда ваша функция будет выглядеть вот так:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function ChangeText(m){
var i;
for (i=1;i<=10;i++)
if (i==m)
{
document.getElementById("l"+i).style.color = "#de1800";
document.getElementById("text"+i).style.display = "";
}
else
{
document.getElementById("l"+i).style.color = "#5a5d60";
document.getElementById("text"+i).style.display = "none";
}
в опщем: как-то так, но нужно проверить всё ли правельно указал..
0
60 / 60 / 6
Регистрация: 12.11.2009
Сообщений: 169
15.04.2010, 18:45 3
Можно попробовать так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function ChangeText(el){
    
    n = 15; // количество ссылок
    id = el.id.substr(1);   //получаем номер ссылки на которую нажали
                                 //убрав первую буквы из id
    
    //Вначале делаем всем ссылкам и полям
    //стандартные значения
    for (var i=1; i<=n; ++i)
    {
        document.getElementById("l"+i).style.color = "#5a5d60";
        document.getElementById("text"+i).style.display = "none";
    } 
 
    //А теперь меняем для выбраного объекта как надо
    
    document.getElementById("l"+id).style.color = "#de1800";
    document.getElementById("text"+id).style.display = "";
    
    }
А в html-коде надо будет указывать одну и туже функцию и передавать в нее this
HTML5
1
2
3
4
5
<a href="javascript:void()" id="l1" style="color:red;" onclick="ChangeText(this)">Ссылка 1</a>
<a href="javascript:void()" id="l2" onclick="ChangeText(this)">Ссылка 2</a>
 
<div class="text1" id="text1">Текст 1</div>
<div class="text1" id="text2" style="display:none;">Текст 2</div>
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 3
15.04.2010, 19:01  [ТС] 4
Спасибо большое.
Получилось по 2му примеру Nazz

А по примеру cooperOk - при нажатии появляются все 3 текста и все ссылки меняют цвет (для всех 3х ссылок указала ChangeText(this))
0
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
15.04.2010, 19:12 5
всегда пожалуста))) обращайтесь))
0
60 / 60 / 6
Регистрация: 12.11.2009
Сообщений: 169
15.04.2010, 19:20 6
Возможно это потому что переменная n не соответствует. У меня она стоит 15, а надо было всего лишь 3. У меня нажатая ссылка светится красным, все остальные серым и отображается только текст с тем же номером что и ссылка
0
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 3
15.04.2010, 19:44  [ТС] 7
cooperOk - и правда. Спасибо!
0
15.04.2010, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2010, 19:44
Помогаю со студенческими работами здесь

Во всех браузерах при клике открываются ссылки с рекламой
Во всех браузерах при клике открываются ссылки с рекламой. Причем вначале пытается загрузиться...

Во всех браузерах при клике открываются ссылки с рекламой
Во всех браузерах при клике открываются ссылки с рекламой.

При клике на ссылки и ява вставки открывается окно с рекламой
На компе нижданно ни гадано было запущено приложение из разрдка скачай музыку (торрент прога) в exe...

При клике в браузере Хром открываются рекламные ссылки, до 15 в день
Доброго времени суток. Проблема в названии темы, стандартные антивирусы и утилиты проблему не...

При клике на ссылки открываются левые сайты. Тормозит компьютер
Приветствую. Посмотрите пожалуйста логи

Мазила тормозит и открывает новые окна с рекламой при клике на разные ссылки
Даже на форуме при переходе в &quot;Профиль&quot; открывается новое окно с рекламой или же пустое + за час...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru