Вы можете использовать события onShow и onHide в каждой из ваших всплывающих подсказок и вносить изменения в объект триггера. Я покажу вам это с вашим кодом.
Вот ваши дивы триггерной кнопки:
<div id="eleven_div" class="button-eleven" style="display: block; ">
<a href="projects/gantt/" id="button">Button 11</a>
</div>
<div id="ten_div" class="button-ten" style="display: block; ">
<a href="projects/table/" id="button">Button 10</a>
</div>
...
И соответствующий ему javascript:
$(".button-one").tooltip({
position: "center right",
delay:300,
effect: 'slide',
direction:'right',
offset: [30, -12],
slideOffset: 30,
slideFade:'true',
slideInSpeed:350,
slideOutSpeed:250
});
$(".button-two").tooltip({
position: "bottom left",
delay:300,
effect: 'slide',
direction:'left',
offset: [-34, 20],
slideOffset: 30,
slideFade:'true',
slideInSpeed:350,
slideOutSpeed:250
});
...
Сначала у вас есть атрибут id = "button" внутри каждого из ваших a-тегов внутри div-ов. Это абсолютно неправильно. Идентификаторы не должны встречаться дважды. Так что лучше поменяйте это на классы:
<div id="eleven_div" class="button-eleven" style="display: block; ">
<a href="projects/gantt/" class="button">Button 11</a>
</div>
<div id="ten_div" class="button-ten" style="display: block; ">
<a href="projects/table/" class="button">Button 10</a>
</div>
Теперь поместите функцию обратного вызова для отображения красных точек. Функция вызывается каждый раз, когда отображается всплывающая подсказка или будет снова скрыта. И это добавляет или удаляет класс к a-тегу внутри запускающего div. Новый код:
function hovering()
{
this.getTrigger().find("a").first().toggleClass("hovered");
}
$(document).ready(function() {
$(".button-one").tooltip({
position: "center right",
delay:300,
effect: 'slide',
direction:'right',
offset: [30, -12],
slideOffset: 30,
slideFade:'true',
slideInSpeed:350,
slideOutSpeed:250,
onShow: hovering,
onHide: hovering
});
$(".button-two").tooltip({
position: "bottom left",
delay:300,
effect: 'slide',
direction:'left',
offset: [-34, 20],
slideOffset: 30,
slideFade:'true',
slideInSpeed:350,
slideOutSpeed:250,
onShow: hovering,
onHide: hovering
});
...
Наконец, измените свой код CSS, где стили для #button расположены в этом:
.button {
background:transparent url(../images/red-circle.png) no-repeat scroll 0px -2px;
display:block;
height:23px;
width:23px;
overflow:hidden;
text-indent:-999em;
cursor:pointer;
opacity: 1;
-webkit-transition: opacity 1s;
-moz-transition: opacity 1s;
-o-transition: opacity 1s;
}
/**
* mouseover state,
* elements with the "hovered" class now behave
* like ones in mouseover state
*/
.button:hover, .button.hovered{
background-position:0 -25px;
opacity: 1;
}
/* clicked state */
.button:focus {
background-position:0 -25px;
}
Чтобы всплывающая подсказка закрывалась при нажатии на ссылку, поместите этот код после определения подсказки:
$(".tooltip, .tooltip-brite, ... all your tooltip-classes").live("click", function() {
$(this).prev().tooltip().hide();
});
$(".button-two, .button-one, ... all your button-classes").live("click", function() {
$(this).tooltip().hide();
});
Это закроет всплывающую подсказку, когда эфира div с красной точкой внутри или щелкает окно всплывающей подсказки.