jQuery 中是否有任何方法可以选择位于特定位置的所有元素,例如选择位于 left:100 和 top:300 的元素,另一个 div 位于同一位置,单击我想获取 ID两个 Div?
如果我可以选择并定位在一系列位置的元素,那就太好了,
http://jsfiddle.net/simmi_simmi123/YjC6y/1908/
This Fiddle 但它只显示顶部 div 的 ID。
$(document).ready(function(){
$(document.body).bind('click', function(e){
var elem = document.elementFromPoint(e.pageX, e.pageY);
alert('you selected element id: ' + elem.id);
});
});
最佳答案
试试我的 fiddle http://jsfiddle.net/YjC6y/1911/
它使用来自可能的重复代码,正如您在原始帖子中评论的那样:
$(document).ready(function(){
$(document.body).bind('click', function(e){
var elems = GetAllElementsAt(e.pageX, e.pageY);
elems.each(function() {
alert($(this).attr('id'));
});
});
});
function GetAllElementsAt(x, y) {
var $elements = $("body *").map(function() {
var $this = $(this);
var offset = $this.offset();
var l = offset.left;
var t = offset.top;
var h = $this.height();
var w = $this.width();
var maxx = l + w;
var maxy = t + h;
return (y <= maxy && y >= t) && (x <= maxx && x >= l) ? $this : null;
});
return $elements;
}
这篇文章的主要作者@hunter:find elements that are stacked under (visually) an element in jquery
关于jquery - 识别出现在指定位置的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16693771/