Javascript 如何将jQuery live绑定到整个窗口?
每当鼠标移动到浏览器窗口上的任何位置时,我都会尝试调用一些函数。目前,我正在使用:Javascript 如何将jQuery live绑定到整个窗口?,javascript,jquery,html,Javascript,Jquery,Html,每当鼠标移动到浏览器窗口上的任何位置时,我都会尝试调用一些函数。目前,我正在使用: $('html').live('mousemove', function(e) { ... } 一旦页面向下滚动,这似乎就不起作用了 是否有方法将mousemove事件绑定到整个窗口 $(window).live('mousemove', function(e) { ... } 结果一事无成 -- 编辑: 我的鼠标功能代码如下: function mouseEvents() { // se
$('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);
}
});
}
$(document).bind(“mousemove”,函数(e){…})
也可以在卷轴上触发(移动鼠标滚轮不会触发鼠标移动)
$(document).bind(“mousemove mouseweel DOMMouseScroll”,函数(e){…})
其中,DOMMouseScroll
是特定于firefox的mousewheel事件 请注意:
.live已弃用:请参见此处:(类别已弃用)
您可以尝试以下方法:
$(document).on('mousemove', function(e) { ... }
**or**
$(document).live('mousemove', function(e) { ... }
你为什么要用。活?Live适用于尚未创建的元素(或动态添加和删除的元素)
窗口
和文档
从一开始就存在,所以只需使用$(document).bind
如果您使用的是jQuery 1.7+,请使用
$(文档)。在上,不推荐使用live
。。。在这种情况下,您不需要它,因为窗口
(或文档
)总是可用的。只需正常绑定事件处理程序。好的-感谢大家的及时响应。我已经更新到jQuery 1.7x,尝试了$(窗口)。绑定(…)
,$(文档)。绑定(…)
,$(文档)。在(…)
上,所有这些都提供了类似的结果,但我仍然遇到了相同的问题,在向下滚动文档时没有调用鼠标操作。我有很多绝对定位的div,我不知道为什么它在滚动到页面底部时不调用:<您可以看到,由于某种原因,向下滚动时不会调用该操作…@waffl-ah您希望在滚动时也触发它吗?我将编辑我的回答我不希望滚动成为触发器,我只希望mousemove
以同样的方式影响万花筒,无论您在文档中的何处。然而,由于某种原因,当向下滚动时,它似乎并没有“触发”。@waffl在视频中,当你向下滚动后移动鼠标时,它显然在移动。如果它移动不正确,您必须在自定义逻辑中考虑它,但它确实在移动。我认为$(document).live
不起作用。。。我认为它只适用于选择器。嗯,你说得对!真的,兄弟!Lmao似乎是下面的一个演示@Esailija@FelixKlingjQuery在这里是宽容的,它以某种方式调用.on
,并使用空字符串作为选择器(因此它相当于$(document).on(“mousemove”,“”,fn)
),它被忽略,就好像它不存在一样。我还没有使用不支持.on
的jQuery进行测试,但我怀疑它在那里会起作用。@Esailija++1,因为您得到了一些不同的东西<代码>:)
谢谢,在聊天中,Esailija发现这是一个webkit错误,并提交了一个。临时修复方法是使用jQuery重新声明html
元素的高度:$(“html”).height($(document.height())代码>