Detect click inside/outside of element with single event handler

后端 未结 10 1723
南笙
南笙 2020-12-04 15:48

Suppose I have one div in my page. how to detect the user click on div content or outside of div content through JavaScript or JQuery. please help with small code snippet. t

10条回答
  •  星月不相逢
    2020-12-04 16:12

    This question can be answered with X and Y coordinates and without JQuery:

           var isPointerEventInsideElement = function (event, element) {
                var pos = {
                    x: event.targetTouches ? event.targetTouches[0].pageX : event.pageX,
                    y: event.targetTouches ? event.targetTouches[0].pageY : event.pageY
                };
                var rect = element.getBoundingClientRect();
                return  pos.x < rect.right && pos.x > rect.left && pos.y < rect.bottom && pos.y > rect.top;
            };
    
            document.querySelector('#my-element').addEventListener('click', function (event) {
               console.log(isPointerEventInsideElement(event, document.querySelector('#my-any-child-element')))
            });
    

提交回复
热议问题