Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2010, 10:54
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

задать hover для элемента
Допустим есть элемент <a id="some">
Так вот возможно ли задать средствами JS ему :hover
как этот в css
#some:hover {color:#---}
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2010, 11:36
Аватар для chippolino
Аспирант
Отправить личное сообщение для chippolino Посмотреть профиль Найти все сообщения от chippolino
 
Регистрация: 24.04.2010
Сообщений: 79

Конечно можно. Вот один из вариантов:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html><head><title>New</title>
<script type="text/javascript">

window.onload = function(){
	
	var style = document.createElement('style');
	style.type = 'text/css';
	
	var h = '#some:hover{color:#f00}';
	var hover = document.createTextNode(h);

	var head = document.getElementsByTagName('head')[0];

	style.appendChild(hover);
	head.appendChild(style);
		
}

</script>
</head><body>

<h1><a id="some" href="#">test</a></h1>
 
</body></html>
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2010, 11:42
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

ясно, значит нужно добавить стиль в Head
спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2010, 12:16
Аватар для chippolino
Аспирант
Отправить личное сообщение для chippolino Посмотреть профиль Найти все сообщения от chippolino
 
Регистрация: 24.04.2010
Сообщений: 79

<script type="text/javascript">
//можно сымитировать :hover c помощью событий onmouseover и onmouseout
window.onload = function(){

	var some = document.getElementById('some');
	some.style.color = 'lightblue';//задаем цвет по умолчанию
	some.onmouseover = function(){
		some.style.color = '#f00';
	}
	some.onmouseout = function(){
		some.style.color = 'lightblue';
	}
}

</script>
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2010, 12:39
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

Я сделал может и криво но по-своему
<a id="some" onmouseover="hover('some','c14141')" onmouseout="nohover()"> Наведи на меня </a>

function hover(id,c){
// узнаем цвет до наведения и запоминаем
var color=document.getElementById(id).style.color;
if (color=="unfefined" || color==""){
var par=document.getElementById(id)
while(color=="undefined"  || color==""){par=par.parentNode; color=par.style.color}
colorBefore=color}
else {colorBefore=color}
document.getElementById(id).style.color="#"+c
Hovered=id
}
function nohover(){
if (colorBefore==""){colorBefore="#000000"}
document.getElementById(Hovered).style.color=colorBefore
Hovered=""
}

тока если ни у одного из родителей не будет задан в стилях color будет плохо

еще бы улучшить чтобы не передовать id элемента а вычислять в самой функции

Последний раз редактировалось bushstas, 17.06.2010 в 12:45.
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2010, 12:43
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

bushstas,
можно и без id
<a onmouseover="hover(this,'c14141')"  onmouseout="nohover()"> Наведи на меня </a>
__________________
.
Ответить с цитированием
  #7 (permalink)  
Старый 17.06.2010, 12:48
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

спасибо Skipp мне вот этот this пока с трудом дается оказывается все просто
Ответить с цитированием
  #8 (permalink)  
Старый 17.06.2010, 12:51
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

bushstas,
В данном случае this передаёт ссылку на элемент <a>

А вообще интересно, что этой функцией вы хотите сделать, вникать в код не хочется, суть в чём.
Может что попроще подскажу.
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 17.06.2010, 12:57
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

этой функцией я хочу изменять цвет шрифта элементов <a> при наведении на них, чтобы не прописывать в css для каждого hover, просто передовать цвет в функцию hover().
та узнает цвет текста до наведения из стиля, если не указан из стиля родителя и так далее вверх по дереву, запомнит, перекрасит текст в переданный цвет

функция nohover() перекрасит текст обратно в цвет до наведения
Ответить с цитированием
  #10 (permalink)  
Старый 17.06.2010, 13:03
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

bushstas,
Похимичте с этим
<a id="some" onmouseover="this.style.color='#c14141'" onmouseout="..."> Наведи на меня </a>
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно задать максимальную ширину элемента theo_ jQuery 10 29.03.2020 23:45
$('.class').html( data ); для скрытого элемента g-smagin jQuery 2 15.06.2010 14:16
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 15:09
эмуляция события click для элемента select Polo Events/DOM/Window 4 16.12.2009 13:29
Применение функции для каждого элемента sergeygerasimov jQuery 2 26.11.2008 11:15