我想知道如何在停止事件中获取e.pageX
和e.pageY
或其类似物? (例如,为了显示弹出菜单)
答案 0 :(得分:4)
所有jQueryUI事件都提供event
作为回调参数
$( ".selector" ).selectable({
stop: function(event, ui) {
alert( event.pageX) ;
}
});
使用jQueryUI的好学习技巧是在一些事件上将event
和ui
记录到控制台。特别是ui
。让您对可以使用的内容有一个良好的感觉
答案 1 :(得分:1)
在上个月,我决定需要一种可靠的方法来检查鼠标定位并使用jquery轻松获得鼠标悬停。以下是我使用的代码,我认为它将解决您的问题。
var mouse = {
mouseX: null,
mouseY: null,
init: function() {
$(document).bind('mousemove', function(event) {
mouse.mouseX = event.pageX;
mouse.mouseY = event.pageY;
});
},
isOver: function($element) {
$elementPosition = $($element).offset();
$elementWidth = $($element).width();
$elementHeight = $($element).height();
$returnValue = true;
if (mouse.mouseX !== null) {
if (mouse.mouseX < $elementPosition.left) { $returnValue = false; }
if (mouse.mouseY < $elementPosition.top) { $returnValue = false; }
if (mouse.mouseX > $elementPosition.left + $elementWidth) { $returnValue = false; }
if (mouse.mouseY > $elementPosition.top + $elementHeight) { $returnValue = false; }
}
return $returnValue;
}
}
您只需要在domready上触发init,然后您就可以随时获取当前鼠标坐标,并且可以轻松找出鼠标是否在特定元素上。
// Init
jQuery(document).ready( function() {
mouse.init();
});
//Getting Positions
var mouseX = mouse.mouseX;
var mouseY = mouse.mouseY;
// Determining Mouseover
if (mouse.isOver($('#elementId'))) {
alert('Is over');
}
答案 2 :(得分:0)
这些方面的内容如何?
var curX = 0;
var curY = 0;
$(document).mousemove(function(e)
{
curX = e.pageX; curY = e.pageY;
});
$( ".selector" ).selectable({
stop: function(event, ui) { console.log(curX+"/"+curY); }
});
还有:
$(ui).offset()
感兴趣
答案 3 :(得分:0)
这会有所帮助吗?只需添加其他两个答案,如果您只是执行console.log(e),就可以找到有关该事件的大量信息。通过这些信息,我发现pageX和pageY信息存储在originalEvent下。
console.log(e.originalEvent.pageX);
console.log(e.originalEvent.pageY);
此外,当您选择一个项目并打开Chrome开发人员工具并查看该元素时,会添加一个div,其中包含一个'ui-selectable-helper'类,用于计算鼠标的顶部和左侧位置。 / p>