Мне нужно событие, которое вызывает каждый раз, когда я перемещаю мышь над некоторым элементом HTML. Но мне нужно, чтобы он срабатывал все время, когда я двигаюсь, а не только когда я ввожу какой-то элемент (например, событие mouseover, mouseenter или hover).
Я видел, как многие люди пытались сделать просто противоположную функциональность несколько лет назад (элемент mouseover стрелял все время, когда я парил над некоторым div), но каждый раз, когда я тестировал это событие, он срабатывал только тогда, когда я входил в какой-то div. Мне нужно, чтобы он срабатывал каждый раз, когда я двигаю мышью, и я над наблюдаемым элементом, поэтому я могу определить относительное положение мыши к этому элементу.
Есть ли какое-то событие, которого я упускаю, или есть какое-то решение, как отслеживать положение мыши в каком-то элементе, основанном только на зависании (не нажимайте, dbclick,..)?
Добавьте событие mouseover, затем привяжите к mousemove. Я сделал вам небольшой пример, чтобы увидеть координаты, пока вы двигаетесь над div.
$("#mydiv").bind('mousemove', function(event)
{
var offsetleft = this.offsetLeft;
var offsettop = this.offsetTop;
var coordX = event.pageX - offsetleft;
var coordY = event.pageY - offsettop;
$("#coords").html("X: " + coordX + " Y: " + coordY);
});
Попробуйте использовать mousemove: http://api.jquery.com/mousemove/
$( "#target" ).mousemove(function( event ) {
var msg = "Handler for .mousemove() called at ";
msg += event.pageX + ", " + event.pageY;
$( "#log" ).append( "<div>" + msg + "</div>" );
});
вы можете привязываться к событию jQuery mousemove
$( "html" ).mousemove(function( event ) {
...
});
В примерах я привязываюсь ко всему документу, но вы можете легко привязать элемент интереса с помощью селекторов jquery
body
.
mousemove
??? Кстати, вы всегда должны проверить DOC: api.jquery.com/category/events/mouse-events