Где курсор, или mouseenter и mouseleave


Есть две такие замечательные функции в jQuery: mouseenter и mouseleave. с помощью них можно управлять событием, когда курсор заходит на элемент или выходит из него. Простейший пример

<div id="upread">
Курсор вне этого блока
</div>
<script>
$('#upread').mouseenter(function(){
$('#upread').text('Курсор внутри этого блока');
});

$('#upread').mouseleave(function(){
$('#upread').text('Курсор вне этого блока');
});
</script>
Курсор вне этого блока


Интересно, что при определенных условиях эти функции могут не совсем корректно отрабатывать - я встречался с таким. Если страница сложная, перегружена скриптами, то можно и не получить обработку события. В этом случае меня выручал такой костыль:

jQuery(function($) {
  setInterval(function() {
    if $('#upread').is(':hover') $('#upread').text('Курсор внутри этого блока');
	else $('#upread').text('Курсор вне этого блока');
  },1000);
});
Что делает данный код? Он раз в секунду вызывает функцию, проверяющую где находится курсор - наведен над элементом или нет.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, jQuery




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Свой скрипт для чужого сайта
Работа с FTP на PHP
Пошаговое руководство по верстке на вордпресс. Глава четвертая: футер и поиск