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

vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問(wèn)題

 更新時(shí)間:2023年01月22日 10:39:25   作者:前端韭菜  
這篇文章主要介紹了vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突

在做vue項(xiàng)目的時(shí)候,遇到子元素有點(diǎn)擊事件,父元素也有點(diǎn)擊事件,當(dāng)點(diǎn)擊子元素時(shí)往往觸發(fā)的是父元素的點(diǎn)擊事件,產(chǎn)生沖突,怎樣解決這個(gè)問(wèn)題呢?

這就用到vue事件中的事件修飾符,官網(wǎng)地址

Vue.js 為 v-on 提供了事件修飾符 .stop、.prevent、.capture、.self、.once、.passive,我們要處理子元素與父元素的事件沖突就要阻止事件傳遞的產(chǎn)生,而事件修飾符 .stop 的作用是阻止事件繼續(xù)傳播,那么我們需要在子元素的事件上添加事件修實(shí)符 .stop 來(lái)阻止事件傳播。

如下代碼:

 <!-- html -->
 <li class="settingImgLi" 
      :class="{active:index==isActive}" 
      v-for="(image,index) in data.consultList" 
      :key="index"
      <!--父元素事件-->
      @click="handleCurrentItem(image,index)">
                <div style="width:100%;height:100%;position: relative;overflow: hidden;">
                     <img width="100%" height="100%" :src="image.image" alt="">
	                  <div class="img-item-selected">
	                    <Icon type="md-checkmark" />
	                  </div>
                </div>
                <!-- 子元素事件-->
                <div class="img-item-close" @click.stop="removePic(index)">
                  	<i class="el-icon-circle-close"></i>
                </div>
 </li>
  <!-- js -->
  	  handleCurrentItem(image, index) {
       		console.log("父元素")
      },
      removePic(index){
        	console.log("子元素")
      },

事件修飾符

<!-- 阻止單擊事件繼續(xù)傳播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重載頁(yè)面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修飾符可以串聯(lián) -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修飾符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件監(jiān)聽(tīng)器時(shí)使用事件捕獲模式 -->
<!-- 即內(nèi)部元素觸發(fā)的事件先在此處理,然后才交由內(nèi)部元素進(jìn)行處理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只當(dāng)在 event.target 是當(dāng)前元素自身時(shí)觸發(fā)處理函數(shù) -->
<!-- 即事件不是從內(nèi)部元素觸發(fā)的 -->
<div v-on:click.self="doThat">...</div>

使用修飾符時(shí),順序很重要;相應(yīng)的代碼會(huì)以同樣的順序產(chǎn)生。

因此,用 v-on:click.prevent.self 會(huì)阻止所有的點(diǎn)擊,而 v-on:click.self.prevent 只會(huì)阻止對(duì)元素自身的點(diǎn)擊。(官網(wǎng)有介紹此段)

vue點(diǎn)擊事件(父子層級(jí)元素點(diǎn)擊時(shí)踩坑記錄)

<ul>
    <li @click="fatherClick">
        <div @click.stop="childClick">
        </div>
    </li>
</ul>
var vm_target = new Vue({
                el: '#vm_target',
                data: {
 
                },
                methods:{
                    /**父元素點(diǎn)擊事件**/
                    fatherClick:function(event){
                        var el1 = event.currentTarget;
                                var el2 = event.target;
                    },<br>              childClick:function(event){ <br>                   <br>              }
                     
                },
                created:function(){
                     
                }
                 
            });   

在JS中,event.currentTarget獲取到的是click事件綁定的DOM對(duì)象,event.target獲取到的為當(dāng)前所點(diǎn)擊的DOM對(duì)象。

若綁定了一個(gè)父級(jí)元素后,點(diǎn)擊子元素時(shí),會(huì)觸發(fā)父元素的點(diǎn)擊事件,若需要點(diǎn)擊子元素時(shí)不觸發(fā)父元素事件

有兩種方法:

1、在父元素中判斷event.currentTarget == event.target是否為true

editTarget:function(event){
? ? ? ?var el1 = event.currentTarget;
? ? ? ?var el2 = event.target;
? ? ? ?if(el1 == el2){
? ? ? ? ? //do something
? ? ? ?} ?
}

2、在子元素中,綁定一個(gè)阻止冒泡的點(diǎn)擊事件 @click.stop

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入探討Vue?3中的組合式函數(shù)編程方式

    深入探討Vue?3中的組合式函數(shù)編程方式

    Vue?3中引入了組合式函數(shù)編程方式,可以更好地實(shí)現(xiàn)代碼的復(fù)用和可維護(hù)性。通過(guò)定義可組合的函數(shù),可以將組件的邏輯和狀態(tài)進(jìn)行拆分和組合,實(shí)現(xiàn)更靈活的代碼組織方式。同時(shí),組合式函數(shù)也支持響應(yīng)式數(shù)據(jù)和生命周期鉤子函數(shù),更加貼近Vue開(kāi)發(fā)的實(shí)際場(chǎng)景
    2023-05-05
  • vue實(shí)現(xiàn)密碼顯示隱藏功能的思路詳解

    vue實(shí)現(xiàn)密碼顯示隱藏功能的思路詳解

    這篇文章主要介紹了vue實(shí)現(xiàn)密碼顯示隱藏功能的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • vue3中使用keepAlive緩存路由組件不生效的問(wèn)題解決

    vue3中使用keepAlive緩存路由組件不生效的問(wèn)題解決

    這篇文章主要介紹了vue3中使用keepAlive緩存路由組件不生效的問(wèn)題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-06-06
  • vue中的rules表單校驗(yàn)規(guī)則使用方法示例詳解 :rules=“rules“

    vue中的rules表單校驗(yàn)規(guī)則使用方法示例詳解 :rules=“rules“

    這篇文章主要介紹了vue中的rules表單校驗(yàn)規(guī)則使用方法示例詳解 :rules=“rules“,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-11-11
  • vue.config.js中devServer.proxy配置說(shuō)明及配置正確不生效問(wèn)題解決

    vue.config.js中devServer.proxy配置說(shuō)明及配置正確不生效問(wèn)題解決

    Vue項(xiàng)目devServer.proxy代理配置詳解的是一個(gè)非常常見(jiàn)的需求,下面這篇文章主要給大家介紹了關(guān)于vue.config.js中devServer.proxy配置說(shuō)明及配置正確不生效問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Vue基于localStorage存儲(chǔ)信息代碼實(shí)例

    Vue基于localStorage存儲(chǔ)信息代碼實(shí)例

    這篇文章主要介紹了Vue基于localStorage存儲(chǔ)信息代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 淺談Vue數(shù)據(jù)綁定的原理

    淺談Vue數(shù)據(jù)綁定的原理

    本篇文章主要介紹了淺談Vue數(shù)據(jù)綁定的原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Vue input輸入框回車以后自動(dòng)刷新頁(yè)面(直播程序)

    Vue input輸入框回車以后自動(dòng)刷新頁(yè)面(直播程序)

    這篇文章主要介紹了直播程序,Vue input輸入框回車以后自動(dòng)刷新頁(yè)面,適用場(chǎng)景是在輸入框輸入字符并按下回車鍵搜索時(shí),刷新頁(yè)面,需要的朋友參考下實(shí)現(xiàn)代碼
    2023-01-01
  • Vue系列:通過(guò)vue-router如何傳遞參數(shù)示例

    Vue系列:通過(guò)vue-router如何傳遞參數(shù)示例

    本篇文章主要介紹了Vue系列:通過(guò)vue-router如何傳遞參數(shù)示例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問(wèn)題

    vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問(wèn)題

    這篇文章主要介紹了vue跳轉(zhuǎn)外部鏈接始終有l(wèi)ocalhost的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

长泰县| 崇信县| 化隆| 昌平区| 广丰县| 台南县| 顺义区| 西城区| 敖汉旗| 麻阳| 精河县| 大埔区| 托克托县| 凌云县| 得荣县| 德庆县| 调兵山市| 天镇县| 望都县| 道真| 施秉县| 孝昌县| 芮城县| 镇平县| 平潭县| 化德县| 六枝特区| 安阳市| 徐水县| 会理县| 陈巴尔虎旗| 佛学| 景洪市| 泰安市| 拉孜县| 九江县| 遵义市| 禄劝| 定兴县| 龙江县| 长沙市|