Использовать координаты мыши при наведении мыши на функцию ввода
У меня есть страница сервера Java, которая должна выполнять функцию showPeopleDetails, когда пользователь наводит курсор на тег a. showPeopleDetails - это функция javascript в отдельном js-файле, который импортируется платформой. showPeopleDetails должен отображать всплывающее окно "Воздушный шар" над тегом a. Каким-то образом функция выполняется только для первого a-тега, но не для других! Это фрагмент HTML:
| <a href="javascript:void(0);" class="PeopleLink LinkColorBlackDark" onmouseover= "showPeopleDetails('<%=userUnique %>', event.clientX, event.clientY)" onmouseout="hidePeopleDetailsTimed()"></a>
Это моя функция JavaScript ShowPeopleDetails:
function showPeopleDetailsNow(UserId, x, y){
var vpd = document.getElementById("PeopleDetails");
if ( vpd != null ) {
getMousePosition();
vpd.style.top= x +10 + $(document).scrollTop(); //mouseX and mouseY are defined globally
vpd.style.left= y +10;
vpd.style.display="block";
}
}
Нет ничего плохого в функции showPeopleDetails, которую я протестировал, и она работает в других частях сайта. Но когда я добавляю event.clientX и event.clientY, всплывающее окно отображается только один раз. Мне нужно только разработать для Internet Explorer 8, поэтому совместимость браузера не является проблемой. Помощь очень ценится!
1 ответ
Вместо передачи в вызов функции event.clientX и event.clientY попробуйте
<a href="javascript:void(0);" class="PeopleLink LinkColorBlackDark" onmouseover= "showPeopleDetails('<%=userUnique %>', event)" onmouseout="hidePeopleDetailsTimed()"></a>
function showPeopleDetailsNow(UserId, event){
event = event || window.event;
var x = event.clientX, y = event.clientY;
var vpd = document.getElementById("PeopleDetails");
if ( vpd != null ) {
getMousePosition();
vpd.style.top= x +10 + $(document).scrollTop(); //mouseX and mouseY are defined globally
vpd.style.left= y +10;
vpd.style.display="block";
}
}