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谢谢。理想情况下,我想弄清楚为什么这不起作用,因为我想创建一系列的活动