jQuery UI Selectable:如何在'stop'事件中获取鼠标坐标?

时间:2012-02-29 16:21:00

标签: javascript jquery jquery-ui events jquery-selectors

我想知道如何在停止事件中获取e.pageXe.pageY或其类似物? (例如,为了显示弹出菜单)

4 个答案:

答案 0 :(得分:4)

所有jQueryUI事件都提供event作为回调参数

$( ".selector" ).selectable({
   stop: function(event, ui) {
       alert( event.pageX) ;
   }
});

使用jQueryUI的好学习技巧是在一些事件上将eventui记录到控制台。特别是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()

look at.

感兴趣

答案 3 :(得分:0)

这会有所帮助吗?只需添加其他两个答案,如果您只是执行console.log(e),就可以找到有关该事件的大量信息。通过这些信息,我发现pageX和pageY信息存储在originalEvent下。

                    console.log(e.originalEvent.pageX);
                    console.log(e.originalEvent.pageY);

此外,当您选择一个项目并打开Chrome开发人员工具并查看该元素时,会添加一个div,其中包含一个'ui-selectable-helper'类,用于计算鼠标的顶部和左侧位置。 / p>