如何将jQuery live绑定到整个窗口?

时间:2012-07-05 11:29:24

标签: javascript jquery html

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

$('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);
            }
        });
    }

3 个答案:

答案 0 :(得分:2)

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

同时触发滚动(移动鼠标滚轮不会触发鼠标移动)

<德尔> $(document).bind("mousemove mousewheel DOMMouseScroll", function(e) { ... } )

其中DOMMouseScroll是mousewheel的firefox特定事件。

答案 1 :(得分:0)

请注意:

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

你可以试试这个:

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

**or**

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

答案 2 :(得分:0)

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

从那里起,

windowdocument就可以了,所以只需使用$(document).bind

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