Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Link background / 9 сообщений из 9, страница 1 из 1
21.11.2007, 13:11
    #34955076
aes
aes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Всем добрый день. Попрошу сильно не пинать, но в 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
21.11.2007, 14:11
    #34955370
Carat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
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
21.11.2007, 15:23
    #34955654
aes
aes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
А почему выделение убираеться при перерисовке страницы?
...
Рейтинг: 0 / 0
21.11.2007, 15:56
    #34955806
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Как вариант, завести скрытую переменную в которой будет храниться id "выбраной" ссылки... От этого и "плясать". Тогда даже при перерисовке страницы цвет будет сохраняться.
Правда тогда придется задействовать событие onload в body.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
21.11.2007, 20:38
    #34956717
Carat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
выделение надо отслеживать во внешних перемнных
1. в $_GET
2. в кукис
3. в сессии
...
Рейтинг: 0 / 0
22.11.2007, 10:06
    #34957307
aes
aes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Переделал функцию вот так, всё равно выделение уходит, так ещё и опаздывает на 1 клик.
Код: plaintext
1.
2.
3.
function setColor(object){
	object = document.getElementById("a_<?=$_GET["action"]?>");
	object.className = "selectedlink";
}
Как бороться, направьте на путь правильный
...
Рейтинг: 0 / 0
22.11.2007, 10:53
    #34957459
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Код: 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
22.11.2007, 11:01
    #34957491
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Ghirik , после F5 все желтое опять... Все равно нужно где-то хранить какой элемент выбран.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
22.11.2007, 17:25
    #34959269
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Link background
Можно куки прилепить, вот так помнит:

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


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