Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2012, 17:53
Новичок на форуме
Отправить личное сообщение для sazhyk Посмотреть профиль Найти все сообщения от sazhyk
 
Регистрация: 28.12.2012
Сообщений: 2

[решено]Добавление/удаление класса элемента при наведении на родительский элемент.
Доброго времени суток, уважаемые форумчане.
Возникла проблема, так как только начал знакомcтво с JavaScript, с присвоением/удалением классов.
Ситуация такая: имеется что-то типа
<div class="class1">тут текст
    <a href="#" class="class2 hidden">ссылка</a>
</div>

а в css
.hidden {
     display: none !important;
 }

Задача заключается в том, чтобы при наведении на
<div class="class1">...</div>
у ссылки был удалён класс .hidden
<a href="#" class="class2">ссылка</a>
Соответственно, при выходе курсора за предела дива возврат на исходную. Использование jQuery категорически неуместно.
Пожалуйста, помогите новичку. Заранее премногоблагодарен!

P.S.просьба к модераторам, если сообщение не в той теме, перенесите в нужную пожалуйста. если дублируется - отправьте куда нужно. и вам заранее спасибо.

Последний раз редактировалось sazhyk, 29.12.2012 в 11:24.
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2012, 18:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

sazhyk,
http://learn.javascript.ru/mousemove-events
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2012, 11:23
Новичок на форуме
Отправить личное сообщение для sazhyk Посмотреть профиль Найти все сообщения от sazhyk
 
Регистрация: 28.12.2012
Сообщений: 2

рони, спасибо за информацию, всё предельно ясно.
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2012, 11:48
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

так?
<!DOCTYPE HTML>
<html>
  <head>
    <style>
      
      .show{
          -webkit-transition: all 1s ease;
            color:red;
           opacity:1;
          }
      
    .hide{
          -webkit-transition: all 1s ease;
        opacity:.5;
    
    }
    </style>
  </head>
  <body>
    
    <div id="hover">hover is on me</div>
    
    <a href="#" id="hide" class="hide">hover me</a>
    
    <script>

function hover (opt) {
	
 opt.elem.onmouseover = ElemMouseAction;	 
 opt.elem.onmouseout = ElemMouseAction;
 	
 function ElemMouseAction (evt) {
  var related, Call;
  var e = evt || event;	 
 
	if(e.type == 'mouseover'){ 
      
	  Call = opt.over; 
	  related = e.relatedTarget || e.fromElement;
	  
	} else {
      
	  Call = opt.out; 
	  related =  e.relatedTarget || e.toElement;
	  
 }
		
			
	while (related && related != this) {
		related = related.parentNode;
		} 
	  
	  if(related == this) return;
	 
	  Call.call(this, e);
	 
	 }	

	
	}
	

var lnk = document.getElementById("hide");      
      
hover({
	elem:document.getElementById('hover'),
	over:function (e) {// срабатывает при mouseover
		
       lnk.className = "show";
      
		},
	out:function (){// срабатывает при mouseout
	
        lnk.className = "hide";
		}	
	
	});	

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 30.12.2012, 12:30
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

<div class="class1">тут текст
    <a href="#" class="class2 hidden">ссылка</a>
</div>



var a = document.getElementsByClassName('class1');
for(i=0;i<a.length;i++)
{
   a[i].onmouseover = function(){remClass(1,this)};
   a[i].onmouseout = function(){remClass(0,this)};
}

function remClass(a,b)
{
   a ? b.getElementsByTagName('a')[0].class = 'class2' : b.getElementsByTagName('a')[0].class = 'class2 hidden';
}
Ответить с цитированием
  #6 (permalink)  
Старый 30.12.2012, 13:09
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Ruslan_xDD,
при переходе между вложенным в ссылку элементами будет происходить событие onmouseover и onmouseout
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #7 (permalink)  
Старый 30.12.2012, 14:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

а hover никак ?
Ответить с цитированием
  #8 (permalink)  
Старый 30.12.2012, 14:29
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

dmitriymar, вот и я тоже не могу понять, зачем столько возни, когда есть более лёгкие способы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки при наведении курсора Heidel jQuery 1 06.11.2012 22:03
Не работает скрипт при обновлении элемента без перезагрузки страницы Jex Events/DOM/Window 0 28.09.2012 16:43
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
изменения рисунка при наведении курсора Kenan Bek Events/DOM/Window 24 19.12.2010 20:48
Как изменить текст при наведении курсора? sewernik Элементы интерфейса 2 13.04.2009 19:31