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

Vue.js實現(xiàn)在下拉列表區(qū)域外點擊即可關閉下拉列表的功能(自定義下拉列表)

 更新時間:2017年05月30日 11:47:53   作者:zhangchao19890805  
這篇文章主要介紹了Vue.js實現(xiàn)在下拉列表區(qū)域外點擊即可關閉下拉列表的功能(自定義下拉列表) ,需要的朋友可以參考下

在開發(fā)過程中,為了效果好看,往往需要自己開發(fā)一個下拉列表,而不是使用 HTML 自身的 select 下拉列表。然而當編寫自定義下拉列表的時候,就會碰到一個問題:如果用戶在下拉列表的范圍外進行鼠標點擊的操作,如何關閉已經打開的下拉列表?

解決思路如下:在 DOM 的根節(jié)點上添加一個 click 事件,同時下拉列表內阻止事件的默認行為和冒泡。當響應這個點擊事件的時候,說明是在下拉列表范圍外的點擊(因為下拉列表內阻止了事件的冒泡),就可以關閉已經打開的下拉列表。

如果是純 JS 代碼,有人可能會使用 document.onclick 來添加根節(jié)點事件。不過,我現(xiàn)在使用 Vue.js,會選擇使用 Vue.js 的方式處理這個問題。

Vue.js 使用組件化的方式組織代碼,會有一個根組件,可以在這個根組件上加上 @click 事件,來響應區(qū)域外的點擊事件。在一個完整的應用中,可能有多種場景需要這種區(qū)域外點擊關閉的功能。除了最普通的表單里的下拉列表外,還可能是網站右上角的消息提示框,或者菜單。比較合適的做法是把點擊事件的具體處理邏輯放到各個組件中去。

那么如何讓各個子組件響應根組件上的點擊事件呢?可以使用Vuex來做到這一點。在這里 Vuex 起到了組件之間互相傳遞信息的作用。

讀者可以在這個網址下載我編寫的 Demo 項目:

推薦讀者使用 yarn install 安裝所需的依賴。

下面說一下關鍵代碼:

程序入口 main.js:

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import routes from './router'
import VueSuperagent from 'vue-superagent'
import Vuex from 'vuex'
import 'babel-polyfill';
import store from './vuex/store';
Vue.use(VueRouter);
Vue.use(VueSuperagent);
Vue.use(Vuex);
const router = new VueRouter({
 mode: 'history',
 routes
})
new Vue({
 el: '#app',
 router,
 store,
 render: h => h(App)
})

根節(jié)點 App.vue,添加了點擊事件。

<template>
 <div @click="clickRoot">
  <router-view></router-view>
 </div>
</template>
<script>
  export default {
    methods:{
      clickRoot(event){
        this.$store.dispatch("clickRootNumAction", 1);
      }
    }
  }
</script>

以上所述是小編給大家介紹的Vue.js實現(xiàn)在下拉列表區(qū)域外點擊即可關閉下拉列表的功能(自定義下拉列表),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • 帶你了解前端的幾種包管理器(npm/pnpm等)

    帶你了解前端的幾種包管理器(npm/pnpm等)

    隨著前端工程化的應用越來越廣,插件和包的管理也逐漸衍生出很多的管理器,常見的幾種包管理器如:npm、cnpm、yarn、pnpm,那你知道這些管理器之間有哪些區(qū)別嗎?我們一起來逐個認識下它們
    2023-04-04
  • vue3調度器effect的scheduler功能實現(xiàn)詳解

    vue3調度器effect的scheduler功能實現(xiàn)詳解

    這篇文章主要為大家介紹了vue3調度器effect的scheduler功能實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Vue實現(xiàn)二維碼的展示及下載功能

    Vue實現(xiàn)二維碼的展示及下載功能

    這篇文章主要介紹了Vue實現(xiàn)二維碼的展示及下載功能,其中downloadQRCode()函數(shù)中的url為要下載的文件的路徑,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • vue使用反向代理解決跨域問題方案

    vue使用反向代理解決跨域問題方案

    這篇文章主要為大家介紹了vue使用反向代理解決跨域問題方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • vue.js數(shù)據(jù)綁定的方法(單向、雙向和一次性綁定)

    vue.js數(shù)據(jù)綁定的方法(單向、雙向和一次性綁定)

    本篇文章主要介紹了vue.js數(shù)據(jù)綁定的方法(單向、雙向和一次性綁定),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 源碼揭秘為什么 Vue2 this 能夠直接獲取到 data 和 methods

    源碼揭秘為什么 Vue2 this 能夠直接獲取到 data 和 methods

    本篇文章主要介紹的是Vue2 this 能夠直接獲取到 data 和 methods,閱讀本文將能學到如何學習調試 vue2 源碼、data 中的數(shù)據(jù)為什么可以用 this 直接獲取到、methods 中的方法為什么可以用 this 直接獲取到,需要的朋友可以參考一下
    2021-09-09
  • Vue組件之Tooltip的示例代碼

    Vue組件之Tooltip的示例代碼

    這篇文章主要介紹了Vue組件之Tooltip的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • nuxt 每個頁面head標簽內容設置方式

    nuxt 每個頁面head標簽內容設置方式

    這篇文章主要介紹了nuxt 每個頁面head標簽內容設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue router 通過路由來實現(xiàn)切換頭部標題功能

    vue router 通過路由來實現(xiàn)切換頭部標題功能

    在做單頁面應用程序時,一般頁面布局頭尾兩塊都是固定在布局頁面,中間為是路由入口。這篇文章主要介紹了vue-router 通過路由來實現(xiàn)切換頭部標題 ,需要的朋友可以參考下
    2019-04-04
  • Vue動態(tài)組件與異步組件實例詳解

    Vue動態(tài)組件與異步組件實例詳解

    這篇文章主要介紹了Vue動態(tài)組件與異步組件,結合實例形式分析了動態(tài)組件與異步組件相關概念、功能及使用技巧,需要的朋友可以參考下
    2019-02-02

最新評論

兴化市| 宜章县| 清水河县| 长沙县| 长治市| 当涂县| 湟中县| 徐汇区| 辰溪县| 沂南县| 内黄县| 望江县| 拜泉县| 锦州市| 如东县| 古浪县| 商洛市| 宁强县| 出国| 昌平区| 凌源市| 正宁县| 马公市| 周至县| 尉犁县| 揭阳市| 黎川县| 额尔古纳市| 东丰县| 忻州市| 武隆县| 余姚市| 长武县| 南昌县| 云林县| 肇庆市| 大兴区| 林甸县| 房山区| 手游| 望江县|