Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建具有全局作用域的mousedown事件_Javascript_Jquery_Mouseevent_Mousedown_Onmousedown - Fatal编程技术网

Javascript 创建具有全局作用域的mousedown事件

Javascript 创建具有全局作用域的mousedown事件,javascript,jquery,mouseevent,mousedown,onmousedown,Javascript,Jquery,Mouseevent,Mousedown,Onmousedown,我正在尝试解决另一个限制系统的问题。不理想,但是 无论如何,我需要生成一个点击/触摸,然后找到点(300300)下最上面的元素。我正在使用: event = $.Event( "mousedown", { pageX:300, pageY:300 } ); $("window").trigger( event ); 那么我在听: $(window).bind 'mousedown', (jQueryEvent)-> console.log jQueryEvent.target

我正在尝试解决另一个限制系统的问题。不理想,但是

无论如何,我需要生成一个点击/触摸,然后找到点
(300300)
下最上面的元素。我正在使用:

event = $.Event( "mousedown", { pageX:300, pageY:300 } );
$("window").trigger( event );
那么我在听:

$(window).bind 'mousedown', (jQueryEvent)->
    console.log jQueryEvent.target

但是,
event.target
总是返回窗口。这是有道理的。但是,我要做的是在整个页面上生成一个mousedown事件,然后使用
event.target
找出
(pageX,pageY)
下的元素。有办法做到这一点吗?

您看过document.element frompoint吗?这可能是一种在特定位置查找元素的干净方法


我建议您看看哪个是完整的实现。

pageX和pageY在事件变量本身上,而不是在目标上。但它们会被mousedown事件覆盖。您不需要为此创建事件,关闭将很好地工作:

function hotspot (a, b) {
    var x = a[0] || 0;
    var y = a[1] || 0;
    var w = b[0] || 0;
    var h = b[1] || 0;
    function between (x2, y2) {
        return x2 >= x &&
            y2 >= y &&
            x2 <= (x + w) &&
            y2 <= (y + h);
    }
    return function (e) {
        console.log("mouse x y:", e.pageX, e.pageY);
        console.log("target x y w h:", x, y, w, h);
        console.log(between(e.pageX, e.pageY));
    }
}
$(document).on('mousedown', hotspot([0,0], [300,300]));
功能热点(a、b){
var x=a[0]| | 0;
变量y=a[1]| | 0;
var w=b[0]| | 0;
var h=b[1]| | 0;
(x2,y2)之间的函数{
返回x2>=x&&
y2>=y&&

x2谢谢。理想情况下,我想弄清楚为什么这不起作用,因为我想创建一系列的活动