react,vue移動端(手機端)長按事件


這里以react為例,vue差不多
render中隨意定義一個

<div className={styles.commodity} key={index2} onTouchStart={this.start} onTouchMove={this.move} onTouchEnd={this.end}>

constructor(props) {
    super(props);
    this.state = {
      checkAll: false,
      longClick:0,  // 長按標志
      timeOutEvent: 0,  // 計時器
    };
  }
  start= ()=>{
    console.log("----start----")
    this.setState({timeOutEvent : setTimeout(()=>{
        this.setState({longClick : 1});  //  長按標志位
        // 此處為長按事件
        console.log("長按事件")
    },1500)})
  }

  move=(e)=>{
    console.log("----move----",this.state.timeOutEvent,this.state.longClick)
    clearTimeout(this.state.timeOutEvent)
    this.setState({longClick : 0});  // 清除標志位
    e.preventDefault();  // 阻止其他點擊事件
  }
  end=(e)=>{
    clearTimeout(this.state.timeOutEvent)
    this.setState({longClick : 0});  // 清除標志位
    console.log("----end----",this.state.timeOutEvent,this.state.longClick)

    if(this.state.timeOutEvent !=0 && this.state.longClick==0){  // 判斷是否非長按事件
         //此處為點擊事件
        console.log('點擊事件')
     }
     return false;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM