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

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

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

在開(kāi)發(fā)過(guò)程中,為了效果好看,往往需要自己開(kāi)發(fā)一個(gè)下拉列表,而不是使用 HTML 自身的 select 下拉列表。然而當(dāng)編寫自定義下拉列表的時(shí)候,就會(huì)碰到一個(gè)問(wèn)題:如果用戶在下拉列表的范圍外進(jìn)行鼠標(biāo)點(diǎn)擊的操作,如何關(guān)閉已經(jīng)打開(kāi)的下拉列表?

解決思路如下:在 DOM 的根節(jié)點(diǎn)上添加一個(gè) click 事件,同時(shí)下拉列表內(nèi)阻止事件的默認(rèn)行為和冒泡。當(dāng)響應(yīng)這個(gè)點(diǎn)擊事件的時(shí)候,說(shuō)明是在下拉列表范圍外的點(diǎn)擊(因?yàn)橄吕斜韮?nèi)阻止了事件的冒泡),就可以關(guān)閉已經(jīng)打開(kāi)的下拉列表。

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

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

那么如何讓各個(gè)子組件響應(yīng)根組件上的點(diǎn)擊事件呢?可以使用Vuex來(lái)做到這一點(diǎn)。在這里 Vuex 起到了組件之間互相傳遞信息的作用。

讀者可以在這個(gè)網(wǎng)址下載我編寫的 Demo 項(xiàng)目:

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

下面說(shuō)一下關(guān)鍵代碼:

程序入口 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é)點(diǎn) App.vue,添加了點(diǎn)擊事件。

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

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

相關(guān)文章

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

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

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

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

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

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

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

    vue使用反向代理解決跨域問(wèn)題方案

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

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

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

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

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

    Vue組件之Tooltip的示例代碼

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

    nuxt 每個(gè)頁(yè)面head標(biāo)簽內(nèi)容設(shè)置方式

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

    vue router 通過(guò)路由來(lái)實(shí)現(xiàn)切換頭部標(biāo)題功能

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

    Vue動(dòng)態(tài)組件與異步組件實(shí)例詳解

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

最新評(píng)論

台山市| 林周县| 伊宁县| 广汉市| 濮阳市| 塔河县| 锦屏县| 准格尔旗| 如皋市| 射阳县| 高台县| 鱼台县| 彭州市| 古浪县| 屏山县| 城步| 巴中市| 宜兰市| 霍林郭勒市| 普格县| 综艺| 故城县| 嵊州市| 临澧县| 离岛区| 阜平县| 余干县| 澄城县| 文山县| 洛扎县| 和顺县| 盐山县| 内丘县| 晋城| 汉沽区| 新平| 贵州省| 敦煌市| 泸州市| 休宁县| 藁城市|