如何仅在鼠标移动时触发mousemove事件

时间:2014-07-26 13:29:54

标签: javascript jquery mouseevent mousemove onmousemove

在我的example 事件触发器中,即使鼠标未移动但位于容器内也是如此。

var page = $('.Page'),
    consoleContainer = $('.Console');

page.mousemove(null, function(e){
    var mousePosX = (e.pageX/$(window).width())*100;
    consoleContainer.val('mousePos: ' + mousePosX + ' randomNumber: ' + Math.random());
});
我想要

如果鼠标没有移动但在容器内,事件应该不起作用

PS:对不起我的英语技能

1 个答案:

答案 0 :(得分:0)

也许你可以保存前一个光标位置,当mousemove事件被触发时,检查它是否等于当前鼠标位置。

类似的东西:

var page = $('.Page'), consoleContainer = $('.Console');
var prevPos = '';

page.mousemove(null, function(e)
{
    var currPos = e.pageX + '-' + e.pageY;

    if (prevPos != currPos)
    {
        prevPos = currPos;
        var mousePosX = (e.pageX / $(window).width()) * 100;
        consoleContainer.val('mousePos: ' + mousePosX + ' randomNumber: ' + Math.random());
    }
});

我测试了它并且按预期工作。

希望它可以帮到你 请原谅我可怕的英语。

亲切的问候