私はこのjQueryの拡張機能を作成することになった、this linkから適応し、 Xufoxさんのコメント:
(function ($, document, undefined) {
$.fn.extend({
/**
* @param {number} x The x-coordinate of the Point.
* @param {number} y The y-coordinate of the Point.
* @param {Element} until (optional) The element at which traversing should stop. Default is document.body
* @return {jQuery} A set of all elements visible at the given point.
*/
elementsFromPoint: function(x, y, until) {
until = this[0];
var parents = [];
var current;
do {
current = document.elementFromPoint(x, y);
if (current !== until) {
console.log("current",current);
parents.push(current);
current.style.pointerEvents = 'none';
} else {
current = false;
}
} while (current);
parents.forEach(function (parent) {
return parent.style.pointerEvents = 'all';
});
return $(parents);
}
});
})(jQuery, document);
私はそうのようにそれを使用します。
$('.availabilityOverlap').mouseover(function(e){
console.log($('.availabilityOverlap').elementsFromPoint(e.pageX, e.pageY));
});
これは、指定されたコンテナまでのjQuery要素の配列です。
['document.elementsFromPoint'](https://developer.mozilla.org/en-US/docs/Web/API/Document/elementsFromPoint)。 – Xufox
HTMLの中では接続されていないが、CSS経由でオーバーラップするように配置されているdivのすべての子孫、つまりdivのことについて話していますか? – nnnnnn
@Xufox:サファリでは使用できません:( – T3db0t