我已通过添加以下代码解决该问题:
function inside(element, x, y) {
var offset = element.offset();
var width = element.outerWidth();
var height = element.outerHeight();
return (x > offset.left && y > offset.top &&
x < (offset.left + width) && y < (offset.top + height));
}
$(document).on('click', function(e) {
e = e.originalEvent;
var inside_elements = $('.element').get().filter(function(element) {
return inside(element, e.pageX, e.pageY);
});
if (inside_elements.length) {
console.log('element');
}
});
编辑:使用此发现了另一个解决方案:
$(document).on('click', function(e) {
e = e.originalEvent;
var node = document.elementFromPoint(e.pageX, e.pageY);
var $target = $(node);
if ($target.is('.element')) {
console.log('element');
}
});
EDIT2怪异足够这不会发生当我尝试在codepen中重新创建问题时,可能是点击时焦点/ textarea模糊的问题。