0

每当鼠标移动到浏览器窗口上的任何位置时,我都会尝试调用一些函数。目前,我正在使用:

$('html').live('mousemove', function(e) { ... }

一旦页面向下滚动,这似乎不起作用。

有没有办法将mousemove事件绑定到整个窗口?

$(window).live('mousemove', function(e) { ... }

结果一无所获。

--

编辑:

我的鼠标功能代码如下:

function mouseEvents() {



       // set up mouse movement
        $(window).on('mousemove', function(e) {
            if (window.imgLoaded) {
                var x = e.pageX/$(window).width()*504;
                var y = e.pageY/$(window).height()*504;
                console.log(y);
                drawKaleidoscope(window.ctx, window.img, x / 2, y / 2);
            }
        });
    }
4

3 回答 3

2

$(document).bind("mousemove", function(e) { ... } )

也触发滚动(移动鼠标滚轮不会触发 mousemove)

$(document).bind("mousemove mousewheel DOMMouseScroll", function(e) { ... } )

DOMMouseScroll鼠标滚轮的 Firefox 特定事件在哪里。

于 2012-07-05T11:30:51.117 回答
0

请注意:

.live 已弃用:请参见此处:http ://api.jquery.com/live/ (已弃用类别)

你可以试试这个:

$(document).on('mousemove', function(e) { ... }

**or**

$(document).live('mousemove', function(e) { ... }
于 2012-07-05T11:31:34.000 回答
0

你为什么使用.live?Live 适用于尚未创建的元素(或动态添加和删除的元素)。

window并且document从一开始就在那里,所以只需使用$(document).bind.

如果您使用的是 jQuery 1.7+,请使用$(document).on.

于 2012-07-05T11:31:45.013 回答