最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中touch和click共存的解決方式

 更新時間:2020年07月28日 09:28:51   作者:inticaler  
這篇文章主要介紹了vue中touch和click共存的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在vue開發(fā)手機端項目時,我們經常會遇到touch和click共存的情況,比如城市選擇頁面的字母滑動

touch事件在手機端會觸發(fā)瀏覽器滑動,所以應給touch事件添加阻止默認行為touchmove.prevent。注意阻止默認行為事件不要添加在touchstart事件上,會影響到click事件的發(fā)生。

touch事件和click事件發(fā)生先后順序:

touchstart,touchmove,touchend,click

補充知識:touchstart與click同時觸發(fā)

產生沖突的原因

我們可以給某個元素同時綁定 touchstart 和 click 事件,但這將會導致本篇文章解決的問題 – 這兩個事件在移動設備上會發(fā)生沖突。

由于移動設備能夠同時識別 touchstart 和 click 事件,因此當用戶點擊目標元素時,綁定在目標元素上的 touchstart 事件與 click 事件(約300ms后)會依次被觸發(fā),也就是說,我們所綁定的回調函數(shù)會被執(zhí)行兩次!。這顯然不是我們想要的結果。

解決方案

(1)原生JS

方法一:

使用事件對象中的 preventDefault 方法,preventDefault 方法的作用在于:阻止元素默認事件行為的發(fā)生,但有意思的是,當我們在目標元素同時綁定 touchstart 和 click 事件時,在 touchstart 事件回調函數(shù)中使用該方法,可以阻止后續(xù) click 事件的發(fā)生。

const Button = document.getElementById("targetButton")
Button.addEventListener("touchstart", e => {
 e.preventDefault()
 console.log("touchstart event!")
})
 
Button.addEventListener("click", e => {
 e.preventDefault()
 console.log("click event!")
})

方法二:

基于功能檢測綁定事件

我們可以通過判斷瀏覽器是否支持 touchstart 事件來封裝元素的點擊事件,這樣客戶端會根據(jù)當前環(huán)境判定元素應該綁定的事件類型,代碼如下:

const Button = document.getElementById("targetButton")
const clickEvent = (function() {
 if ('ontouchstart' in document.documentElement === true)
 return 'touchstart';
 else
 return 'click';
})();
 
Button.addEventListener(clickEvent, e => {
 console.log("things happened!")
})

(2) VUE解決方案:

HTML

  <div class="comment-text" 
   @touchstart.prevent="gtouchstart(XXX)"
   @touchend.prevent="triggerReply(XXXX)">
   {{ item.content}}
 </div>

JS

 data: function () {
  return {
     Loop: 0
   };
 }
  gtouchstart: function (XXXX) {
    let self = this;
    //執(zhí)行長按的內容
    self.Loop = setTimeout(function () {
      self.Loop = 0;
      //XXXXXXXXXXXXXXX
    }, 500);
    return false;
  },
  triggerReply: function (XXXX) {
    let self = this;
    clearTimeout(self.Loop);
    //這里click內容
    if (self.Loop !== 0) {
       //XXXXXXXXXXXXXXX
    }
    return false;
  },

添加 touchstart.prevent,組織click事件。

點擊事件順序

點擊事件可以分解成多個事件

在移動端,手指點擊一個元素,會經過:touchstart --> touchmove -> touchend -->click

以上這篇vue中touch和click共存的解決方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue中的生命周期介紹

    Vue中的生命周期介紹

    這篇文章介紹了Vue中的生命周期,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Vue使用echarts可視化組件的方法

    Vue使用echarts可視化組件的方法

    這篇文章主要介紹了Vue使用echarts可視化組件的方法,本文通過實例代碼案例給大家詳細介紹,需要的朋友可以參考下
    2021-07-07
  • Vue響應式原理Observer、Dep、Watcher理解

    Vue響應式原理Observer、Dep、Watcher理解

    這篇文章主要介紹了Vue響應式原理-理解Observer、Dep、Watcher,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • vue實現(xiàn)pdf導出解決生成canvas模糊等問題(推薦)

    vue實現(xiàn)pdf導出解決生成canvas模糊等問題(推薦)

    最近公司項目需要,利用vue實現(xiàn)pdf導出,從而保存到本地打印出來,說起來好像也很容易,具體要怎么實現(xiàn)呢?下面小編給大家?guī)砹藇ue實現(xiàn)pdf導出解決生成canvas模糊等問題,需要的朋友參考下吧
    2018-10-10
  • vue spa應用中的路由緩存問題與解決方案

    vue spa應用中的路由緩存問題與解決方案

    這篇文章主要介紹了vue spa應用中的路由緩存問題與解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • vue實現(xiàn)實時上傳文件進度條

    vue實現(xiàn)實時上傳文件進度條

    這篇文章主要為大家詳細介紹了vue實現(xiàn)實時上傳文件進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 利用vue + koa2 + mockjs模擬數(shù)據(jù)的方法教程

    利用vue + koa2 + mockjs模擬數(shù)據(jù)的方法教程

    這篇文章主要給大家介紹了關于利用vue + koa2 + mockjs模擬數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • vue+vux實現(xiàn)移動端文件上傳樣式

    vue+vux實現(xiàn)移動端文件上傳樣式

    這篇文章主要介紹了vue+vux實現(xiàn)移動端文件上傳樣式,樣式使用的是vux的cell組件,需要的朋友可以參考下
    2017-07-07
  • 如何通過Vue3+Element?Plus自定義彈出框組件

    如何通過Vue3+Element?Plus自定義彈出框組件

    這篇文章主要給大家介紹了關于如何通過Vue3+Element?Plus自定義彈出框組件的相關資料,彈窗是前端開發(fā)中的一種常見需求,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-05-05
  • vue 移動端記錄頁面瀏覽位置的方法

    vue 移動端記錄頁面瀏覽位置的方法

    這篇文章主要介紹了vue 移動端記錄頁面瀏覽位置的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論

永城市| 赤水市| 游戏| 福建省| 元阳县| 松潘县| 石景山区| 泗阳县| 阜宁县| 井陉县| 名山县| 加查县| 洞头县| 府谷县| 宝应县| 芦山县| 商南县| 房产| 连江县| 永德县| 方山县| 伊春市| 平度市| 湟中县| 柏乡县| 含山县| 古丈县| 全州县| 新泰市| 沾化县| 建阳市| 上思县| 遂川县| 句容市| 新巴尔虎右旗| 赣榆县| 蒙自县| 玉林市| 福安市| 左权县| 墨玉县|