powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Link background
9 сообщений из 9, страница 1 из 1
Link background
    #34955076
aes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день. Попрошу сильно не пинать, но в Javascriptе я не силён. Есть набор ссылок, и мне надо чтобы по клику на одну из них менялся цвет фона, кликнули - фон поменялся, кликнули на другую, фон у 1-ой стал обычным, а у новой поменялся.
Пробывал таким макаром:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<script type="text/javascript">
function aColor(a_id,clr){
  a_id.style.background=clr;  
}
</script>

<a href="#" id="l1" onclick="aColor(l1,'#9E109E')">Контакты1</a><br>
<a href="#" id="l2" onclicak="aColor(l2,'#9E109E')">Контакты1</a><br>
не получаеться, наведите плиз на путь праведный. Заранее благодарен
...
Рейтинг: 0 / 0
Link background
    #34955370
Carat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var lastObject=null;

function setColor(object){
col1 = '#cccccc';
col2 = '#FFFFFF';
if (lastObject)
lastObject.style.background=col2;
object.style.background=col1;
lastObject = object;
}
</script>

<a href="#" id="l1" onclick="setColor(this)">Контакты1</a><br>
<a href="#" id="l2" onclick="setColor(this)">Контакты1</a><br>


приблизительно так. извини не тестировал. сам дерзай :)
...
Рейтинг: 0 / 0
Link background
    #34955654
aes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему выделение убираеться при перерисовке страницы?
...
Рейтинг: 0 / 0
Link background
    #34955806
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, завести скрытую переменную в которой будет храниться id "выбраной" ссылки... От этого и "плясать". Тогда даже при перерисовке страницы цвет будет сохраняться.
Правда тогда придется задействовать событие onload в body.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Link background
    #34956717
Carat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выделение надо отслеживать во внешних перемнных
1. в $_GET
2. в кукис
3. в сессии
...
Рейтинг: 0 / 0
Link background
    #34957307
aes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделал функцию вот так, всё равно выделение уходит, так ещё и опаздывает на 1 клик.
Код: plaintext
1.
2.
3.
function setColor(object){
	object = document.getElementById("a_<?=$_GET["action"]?>");
	object.className = "selectedlink";
}
Как бороться, направьте на путь правильный
...
Рейтинг: 0 / 0
Link background
    #34957459
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
28.
29.
30.
31.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>link1</title>
</head>
<body onload="click_link()">
<p><a href="#">link1</a></p>
<p><a href="#">link2</a></p>
<p><a href="#">link3</a></p>
<p><a href="#">link4</a></p>
<p><a href="#">link5</a></p>
<script type="text/javascript">
<!--
function click_link(){
    var a = document.getElementsByTagName("a");
    for (i =  0 ; i<a.length; i++){
        a[i].onclick = click_link;
        a[i].style.backgroundColor = "yellow";
        a[i].style.color = "black";
        a[i].style.fontSize = "100%";
    }
    if (this.style){
    	this.style.backgroundColor = "red";
    	this.style.fontSize = "120%";
    }
}
//-->
</script>
</body>
</html>

if (this.style) это чтобы проигнорировать событие onload от body, ни чего умнее не придумал :)
...
Рейтинг: 0 / 0
Link background
    #34957491
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghirik , после F5 все желтое опять... Все равно нужно где-то хранить какой элемент выбран.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Link background
    #34959269
Ghirik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно куки прилепить, вот так помнит:

Код: plaintext
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>link1</title>
</head>
<body onload="on()">
<p><a href="#">link1</a></p>
<p><a href="#">link2</a></p>
<p><a href="#">link3</a></p>
<p><a href="#">link4</a></p>
<p><a href="#">link5</a></p>
<script type="text/javascript">
<!--

function on() {
    var a = document.getElementsByTagName("a");
    for (i =  0 ; i<a.length; i++) {
        var color;
        readCook(i) == false ? color = "yellow" : color = "red";
        a[i].onclick = click_link;
        a[i].id = "a" + i;
        a[i].style.backgroundColor = color;
        a[i].style.color = "black";
        a[i].style.fontSize = "100%";
    }
}

function click_link() {
    document.cookie = "tag=" + this.id;
    on();
}

function readCook(i) {
    return document.cookie.indexOf("tag=a" + i) == - 1  ? false : true;
}


//-->
</script>
</body>
</html>
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Link background
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]