解決vue中雙擊事件會觸發兩次單擊事件問題

問題描述:當在dom上同時綁定單擊事件和雙擊事件時,點擊雙擊事件會觸發兩次單擊事件,這是我們不想看到的,而是應該單擊事件與雙擊事件分開。

分析:單擊事件和雙擊事件區別就在間隔時間,當我們點擊一次時,設置一個延時器,延時一定時間(300ms爲好),在這300ms之內,在此點擊,認定執行的是雙擊事件,如果超過300ms再點擊第二次,執行的是單擊事件。

方案:

單擊事件代碼:

handleNodeClick(data) {
      var that = this
      // 開啓定時器,300ms的間隔區分單擊和雙擊,解決雙擊時執行兩次單擊事件
      clearTimeout(that.time)
      that.time = setTimeout(() => {
        // 寫單擊事件執行的邏輯代碼
  },300)
}

雙擊事件代碼:

// 雙擊事件
    dbclickNode(node, data) {
      clearTimeout(this.time)
      // 觸發dbclick事件,傳入sonmsg值
      this.$emit('dbclick', data)
    },

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章