javascript 检测组件外部的点击次数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 检测组件外部的点击次数相关的知识,希望对你有一定的参考价值。

import React, { Component } from 'react'
import PropTypes from 'prop-types'

/**
 * Component that alerts if you click outside of it
 */
export default class OutsideAlerter extends Component {
  constructor(props) {
    super(props)

    this.setWrapperRef = this.setWrapperRef.bind(this)
    this.handleClickOutside = this.handleClickOutside.bind(this)
  }

  componentDidMount() {
    document.addEventListener('mousedown', this.handleClickOutside)
  }

  componentWillUnmount() {
    document.removeEventListener('mousedown', this.handleClickOutside)
  }

  /**
   * Set the wrapper ref
   */
  setWrapperRef(node) {
    this.wrapperRef = node
  }

  /**
   * Alert if clicked on outside of element
   */
  handleClickOutside(event) {
    if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {
      alert('You clicked outside of me!')
    }
  }

  render() {
    return <div ref={this.setWrapperRef}>{this.props.children}</div>
  }
}

OutsideAlerter.propTypes = {
  children: PropTypes.element.isRequired,
}

以上是关于javascript 检测组件外部的点击次数的主要内容,如果未能解决你的问题,请参考以下文章

如何检测mat-form-field的外部点击?

检测用户点击按钮的次数

如果外部 ADO 连接已连接或断开,如何检测组件内部?

为啥从内部组件中更改 @Input 变量会导致它无法检测到来自外部组件的新更改?

检测是不是使用外部 JavaScript 文件创建了 html 元素

typescript 检测是否在主机组件外部进行了单击