.hover() 方法绑定了 mouseenter 和 mouseleave 事件的处理程序。您可以使用它在鼠标位于元素内时简单地将行为应用于元素。
它是这样调用的:
$(selector).hover(handlerIn, handlerOut)
简称:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
在你的情况下,这将是:
mainDiv.hover(function (e) {
var mouseX = e.clientX,
mouseY = e.clientY;
test2 = Math.atan(mouseY / mouseX);
test3 = ((test2 * 180) / 3.14);
$("#hgun").rotate(test3);
},
function (e) {
//On mouseleave
});
进一步阅读: jQuery 悬停文档, jQuery 鼠标事件
更新,基于作者的评论:
我不确定您到底想实现什么,但如果您希望每次鼠标在容器内移动时都进行计算和相关操作,您可以使用mousemove事件。
我已经根据您的代码做了一个简单的 Fiddle,请查看:http : //jsfiddle.net/sQ4Z4/1/
我使用了我发现的第一个jQuery Rotate 插件,它可能不是你使用的那个,但它应该足以让你朝着正确的方向前进。
基本上你的代码应该是这样的:
mainDiv.mousemove(function (e) {
var mouseX = e.clientX,
mouseY = e.clientY;
test2 = Math.atan(mouseY / mouseX);
test3 = ((test2 * 180) / 3.14);
$("#hgun").rotate(test3);
});