.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 hover documentation,jQuery mouse events
更新,根據筆者的評論:
我不知道你想實現什麼,但如果你想你的計算和每當鼠標在容器內移動時要執行的相關操作,可以使用mousemove事件。
我已經做了基於代碼的簡單小提琴,檢查出來:http://jsfiddle.net/sQ4Z4/1/
我使用的第一jQuery Rotate Plugin我發現,這可能不是你所使用的,但它應該足夠讓你走向正確的方向。
基本上你的代碼應該是這個樣子:
mainDiv.mousemove(function (e) {
var mouseX = e.clientX,
mouseY = e.clientY;
test2 = Math.atan(mouseY/mouseX);
test3 = ((test2 * 180)/3.14);
$("#hgun").rotate(test3);
});
看看所有[JQuery的鼠標事件(http://api.jquery.com/category/events/mouse-events/)。 – Vucko 2013-04-11 07:03:55