每当鼠标移动到浏览器窗口所在的任何位置时,我都会尝试调用某些函数。目前,我正在使用:
$('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);
}
});
}
答案 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适用于尚未创建的元素(或动态添加和删除的元素)。
从那里起, window
和document
就可以了,所以只需使用$(document).bind
。
如果您使用的是jQuery 1.7+,请使用$(document).on
。