можешь попробовать добавлять при ховере на room класс active и писать
$('.room.active').css({"background":"yellow"}); добавить класс: $(this).addClass('active'); удалить класс при потере ховера: $(this).removeClass('active'); кстати изменение цвета также правильнее будет поставить в css на селектор '.room.active', тогда цвет не будет прописываться в html во время работы скрипта. |
не выходит что-то, а полный код можно?
у меня не получается определить с ховера на тултипе какой room нужно подсвечивать, они все подсвечиваются |
<style type="text/css"> ... .room.active { background: yellow; } </style> <script type="text/javascript"> var room = $(".room"); var tooltip = $(".tooltip"); tooltip.hide(); room.hover(function() { $(this).addClass('active'); tooltip.show(); tooltip.hover(function() { $(this).show(); // Это что? $(this) у тебя сейчас = tooltip, но он и так показан. Зачем тогда? // проблемное место }); }, function(){ $(this).removeClass('active'); tooltip.hide(); tooltip.mouseout(function() { $(this).hide(); }); }); </script> Что-то типа такого. Если сделаешь здесь ссылку на редактируемый вариант - могу покопаться (тут же есть функционал чтобы можно было тестить прямо на сайте). |
И ещё, если не менять структуру, то без ещё одного кода tooltip будет всегда появляться в одном и том-же месте, и с room3 до него не добраться но совершив событие mouseout. Необходимо ещё менять координаты tooltip.
|
boberjs,
Вариант... <!doctype html> <html> <head> <meta charset="utf-8"> <title>ТИТЛЫ</title> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <style type="text/css"> .map { background: red; height: 100px; width: 308px; margin: 70px auto; position: relative; } .room { border: 1px solid red; height: 98px; width: 98px; background: grey; position: relative; display: inline-block; cursor: pointer; } .tooltip { background: green; padding: 20px; position: absolute; top: 20px; left: 43%; } </style> </head> <body> <div class="map"> <div class="room">1</div> <div class="room">2</div> <div class="room">3</div> </div> <div class="tooltip">tooltip</div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> var room = $(".room"); var tooltip = $(".tooltip"); tooltip.hide(); var r ; room.css({"background":"grey"}); room.hover(function() { r = $(this) tooltip.show(); tooltip.hover(function() { $(this).show(); // проблемное место r.css({"background":"yellow"}); }); r.css({"background":"yellow"}); }, function(){ r.css({"background":"grey"}); tooltip.hide(); tooltip.mouseout(function() { $(this).hide(); r.css({"background":"grey"}); }); }); </script> </body> </html> |
Огромное спасибо тебе!!! :)
последний вариант работает полностью как нужно, по поводу позиционирования тултипа - там будет через php еще вставка, которая решает эту проблему подскажи, а как ты сделал код для просмотра сразу? я его не могу найти, первый день на сайте) :thanks: |
boberjs,
http://javascript.ru/formatting |
Часовой пояс GMT +3, время: 00:00. |