2010-08-03 3 views
2

У меня есть событие времени. Я хочу вести себя по-разному в соответствии с тем, на каком HTML-элементе находится указатель мыши.
Есть ли способ, предполагая, что у меня есть элемент HTML, чтобы знать, находится ли указатель мыши в данный момент.
Мне хорошо известно о событиях onmouseover/onmouseout и о том, как их использовать.
Я использую JQuery.
Я, очевидно, ищу какой-то флаг, так как мне нужно проверить состояние и не обрабатывать событие.
еще раз, я знаю, как реализовать это с помощью событий.Как узнать, находится ли указатель мыши на элементе HTML?

ответ

3

Я не знаю какого-либо встроенного способа пинга элемента для определения состояния мыши.

Однако, вы можете создать обновив флаг в MouseEnter и MouseLeave - что, где Brian Driscoll's внушение .hover приходит в:

jQuery.fn.tracking = function() { 
    this.data('hovering', false); 

    this.hover(function() { 
    $(this).data('hovering', true); 
    }, function() { 
    $(this).data('hovering', false); 
    }); 

    return this; 
}; 

jQuery.fn.hovering = function() { 
    return this.data('hovering'); 
} 

Вам необходимо инициализировать отслеживания для каждого элемента, который вы заботитесь о :

$('#elem1,#elem2').tracking(); 

Но тогда вы можете получить статус любого из них:

if ($('#elem1').hovering()) { 
    // ... 
} else if ($('#elem2').hovering()) { 
    // ... 
} 

Демонстрация: http://jsbin.com/amaxu3/edit

3

Вы заглянули в jQuery.hover()? http://api.jquery.com/hover/

+0

Я вижу upvotes: -DDDD стыд, что они не читали мой вопрос. –

+0

Почему мероприятие не работает для вас? – Radu

+0

@ Radu - Itay хотел решение с точки зрения структуры jQuery. –

0

Возможно, вам повезло с document.elementFromPoint, хотя я считаю, что в более старых версиях браузера есть некоторые несоответствия (http://www.quirksmode.org/dom/w3c_cssom.html#documentview).

$('#elem').mousemove(function(e){ 
    if (this == document.elementFromPoint(e.clientX, e.clientY)) { 
     // Do stuff 
    } 
}); 

или вне обработчика

if ($('#elem').get(0) == document.elementFromPoint(x, y)) { 
    // Do stuff 
}

Помимо этого, только другой вариант, который приходит на ум использует обработчики событий для отслеживания, какой элемент мыши находится над.

0

Необходимо указать имя html andme и на наведении курсора мыши вам нужно проверить document.getelementsbyName. Затем проверьте, что вы получаете как выход. Теперь вы можете принять решение - это html-контроль или asp.net.

При использовании collObjects = object.getElementsByName ("HTMLControl"), а затем сравнить идентификатор обоих.

1 morething, почему вам нужно было проверить это в javascript. для этого может быть какое-то другое решение. Просто поделитесь с нами.

Смежные вопросы