1

在我的示例中,即使鼠标没有移动但在容器内,也会触发事件。

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:对不起我的英语水平

4

1 回答 1

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());
    }
});
于 2014-07-26T14:18:31.787 回答