У меня есть своего рода карта изображений, которая представляет собой множество абсолютно позиционированных элементов div, которые при нажатии показывают или скрывают всплывающую подсказку.Выглядит довольно здорово, за исключением того факта, что это не всегда "работает".Звучит глупо, но иногда мне нужно будет нажать пару раз, чтобы вызвать событие.Может я просто недостаточно щелкаю?;)
Разметка
<div class="container">
<img src="img.png" />
<div class="trigger"
<div class="tooltip">
Awesome tooltip is awesome!
</div>
</div>
</div>
Стиль
.container {
width:100px;
height:100px;
position:relative; }
img {
position:relative; }
.trigger {
width:50px;
height:50px;
position:absolute;
top:50px;
left:50px; }
.tooltip {
width:100px;
height:20px;
position:absolute;
top:35px;
left:35px;
display:none; }
Javascript
$(".trigger").toggle(function () {
$(this).children(".tooltip").stop(true, true).fadeTo(200, 0.9);
$(this).siblings(".trigger").children(".tooltip").stop(true, true).fadeOut(200);
}, function () {
$(this).children(".tooltip").fadeOut(200);
});
Разметка и CSS упрощены, но представьте, у меня есть несколько всплывающих подсказок над изображением.Когда я открываю одну подсказку, все остальные должны быть закрыты.Я предполагаю, что здесь все идет не так, но я не вижу ошибки.
В аналогичной функции на том же сайте я полудинамически добавил некоторые идентификаторы и скрыл все, что есть.: не (удостоверение личности), но я просто не могу поверить, что это необходимо.
РЕДАКТИРОВАТЬ: Вот, скрипка: http://jsfiddle.net/CfYRv/