当前位置:   article > 正文

如何在鼠标点击指定元素以外的元素时 触发事件

如何在鼠标点击指定元素以外的元素时 触发事件

1. 思路

步骤一:通过React.useRef()获取指定元素;

步骤二:给document对象添加点击事件;

步骤三:通过ref.current.contains()函数判断点击的元素是否是当前元素;

步骤四:如果不是当前元素(非指定元素)则执行想要的事件;

2. 代码

  1. const Box = (props: any) => {
  2. const ref = useRef(null);
  3. const handleClickOutside = (event) => {
  4. if (!ref.current) return;
  5. if (!ref?.current?.contains?.(event.target)) {
  6. // 在这里执行你需要的操作
  7. console.log('你没有点击Box');
  8. } else {
  9. console.log('你点击了Box');
  10. }
  11. };
  12. useEffect(() => {
  13. // 添加事件监听器到document
  14. document.addEventListener('click', handleClickOutside, true);
  15. return () => {
  16. // 组件卸载时移除监听器
  17. document.removeEventListener('click', handleClickOutside, true);
  18. };
  19. }, []);
  20. return (
  21. <div ref={ref}>
  22. 指定元素
  23. </div>
  24. );
  25. };
  26. export default Box;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/245747
推荐阅读
相关标签
  

闽ICP备14008679号