Geo*_*o P 24 javascript jquery javascript-events mouseevent
所以,就像问题指定的那样,有没有办法在jQuery中触发mousemove事件,它还将鼠标坐标发送到事件对象?
到目前为止,我的代码可以使用.trigger(事件)函数触发mousemove,但event.pageX和event.pageY是未定义的.
ten*_*dor 38
您需要设置pageX和pageY触发事件之前直接.要设置这些属性,请创建一个jQuery.Event对象.
// create a jQuery event
e = $.Event('mousemove');
// set coordinates
e.pageX = 100;
e.pageY = 100;
// trigger event - must trigger on document
$(document).trigger(e);
Run Code Online (Sandbox Code Playgroud)
我不相信可以通过 JavaScript / jQuery 按需获取鼠标坐标;但是,如果将位置绑定到全局变量,则可以在整个文档中随时访问它们,如下所示:
$(document).ready(function(){
$().mousemove(function(e){
window.xPos = e.pageX;
window.yPos = e.pageY;
});
});
Run Code Online (Sandbox Code Playgroud)
对于 CPU 密集程度较低的选项,您可以添加超时,尽管您会以性能为代价换取了解鼠标位置的轻微延迟:
function getMousePosition(timeoutMilliSeconds) {
$(document).one("mousemove", function (event) {
window.xPos = event.pageX;
window.yPos = event.pageY;
setTimeout("getMousePosition(" + timeoutMilliSeconds + ")", timeoutMilliSeconds);
});
}
getMousePosition(100);
Run Code Online (Sandbox Code Playgroud)
您现在应该能够使用任一解决方案从文档中的任何位置访问 window.xPos 和 window.yPos,而无需触发虚假事件。
| 归档时间: |
|
| 查看次数: |
25954 次 |
| 最近记录: |