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

微信小程序視圖控件與bindtap之間的問題的解決

 更新時(shí)間:2019年04月08日 11:33:53   作者:Amy安  
這篇文章主要介紹了微信小程序視圖控件與bindtap之間的問題的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在微信小程序中 最常用的<view>控件 可以用bindtap(冒泡反應(yīng)) 如<view bindtap="ItemOnclick" data-mType="123">的形式綁定ItemOnclick事件并傳遞一個(gè)dataset,其包含一個(gè)名為mType的元素 值為123。

在某一次設(shè)計(jì)中

有如下結(jié)構(gòu):

  <view class="func-m" bindtap="ItemOnclick" data-mType="123">
    <image src="{{ROOT_PATH}}/images/icon1.png" />
  </view>

ItemOnclick事件在點(diǎn)擊在圖片上時(shí)不會(huì)觸發(fā) 需要點(diǎn)擊在圖片之外及外層view范圍之內(nèi)的地方 才會(huì)觸發(fā)

若將bindtap寫在<image>標(biāo)簽內(nèi) 則反過來 點(diǎn)擊圖片會(huì)觸發(fā) 但點(diǎn)擊在圖片之外及外層view范圍之內(nèi)的地方不會(huì)觸發(fā)

由此我做出判斷

點(diǎn)擊事件不會(huì)向父級或子級控件傳遞。

(然而這與冒泡反應(yīng)的定義是不一致的)

但是最近又碰到下面這種情況:

<view style="background-color:#eee;" bindtap="HideMenuList"><!--此為最外層view-->
  <image src="{{ROOT_PATH}}/images/icon1.png" bindtap="ShowMenuList" />
  <view class="menu-list">
     <view class="menu-item" data-mType="CP" bindtap="MenuItemOnclick">
     </view>
     <view class="menu-item" data-mType="HW" bindtap="MenuItemOnclick">
     </view>
   </view>
</view>

需要實(shí)現(xiàn) 點(diǎn)擊圖片 顯示菜單列表 點(diǎn)擊每個(gè)菜單項(xiàng) 觸發(fā)MenuItemOnclick事件并傳遞對應(yīng)的參數(shù)

然后當(dāng)在<view class="menu-list">標(biāo)簽外的地方點(diǎn)擊一下 就觸發(fā)HideMenuList事件隱藏菜單

而實(shí)際產(chǎn)生的效果是 當(dāng)點(diǎn)擊圖片時(shí) 菜單列表一閃便消失 有時(shí)直接沒顯示
后通過打印log發(fā)現(xiàn)是當(dāng)點(diǎn)擊圖片觸發(fā)了ShowMenuList事件后 HideMenuList事件也被觸發(fā)了(且總在ShowMenuList事件之后)

即點(diǎn)擊事件由<image>傳遞到了外層的<view> 因而觸發(fā)了HideMenuList事件

這樣的話那之前的判斷就是錯(cuò)誤的

目前還沒找到這兩種情況之間的關(guān)鍵差異,第二種情況的解決方案是 當(dāng)顯示菜單時(shí) 同時(shí)創(chuàng)造一個(gè)透明遮罩層覆蓋除菜單列表外的區(qū)域,點(diǎn)擊到這個(gè)透明遮罩層后觸發(fā)HideMenuList事件并銷毀或隱藏遮罩層

PS:第二種情況的方式 以前在html及Android環(huán)境下都有用過 是沒有這個(gè)問題的,可能微信小程序這方面的底層機(jī)制和html及Android不一樣,還待深究。

微信小程序bindtap與catchtap的區(qū)別詳解

參考官方文檔 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html

bindtap和catchtap都是當(dāng)用戶點(diǎn)擊該組件的時(shí)候會(huì)在該頁面對應(yīng)的Page中找到相應(yīng)的事件處理函數(shù)。

bind事件綁定不會(huì)阻止冒泡事件向上冒泡,catch事件綁定可以阻止冒泡事件向上冒泡:

//視圖層
<view id="outer" bindtap="handleTap1">   //在組件中綁定bindtap事件 函數(shù)handleTap1
 outer view
 <view id="middle" catchtap="handleTap2"> //在組件中綁定catchtap事件 函數(shù)handleTap2
  middle view
  <view id="inner" bindtap="handleTap3"> //在組件中綁定bindtap事件 函數(shù)handleTap3
   inner view
  </view>
 </view>
</view>
//邏輯層
Page({
  handleTap1:function(event){  
  //點(diǎn)擊handleTap1輸出 outer view bindtap  
   console.log("outer view bindtap") 
  },
  handleTap2: function (event) { 
  //點(diǎn)擊handleTap2輸出 middle view catchtap
   console.log("middle view catchtap") 
  },
  handleTap3: function (event) { 
  //點(diǎn)擊handleTap3輸出 inner view bindtap middle view catchtap 
   console.log("inner view bindtap") 
  }, 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 判斷滾動(dòng)條到底部的JS代碼

    判斷滾動(dòng)條到底部的JS代碼

    這篇文章介紹了判斷滾動(dòng)條到底部的JS代碼,有需要的朋友可以參考一下
    2013-11-11
  • JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果

    JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果

    這篇文章給大家分享一下通過JS實(shí)現(xiàn)十字坐標(biāo)跟隨鼠標(biāo)效果的代碼,有需要的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • npm install 、npm install --save 和 npm install --save-dev的區(qū)別介紹

    npm install 、npm install --save 和&n

    這篇文章主要介紹了npm install 、npm install --save 和 npm install --save-dev的區(qū)別介紹,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • JavaScript prototype 使用介紹

    JavaScript prototype 使用介紹

    用過JavaScript的同學(xué)們肯定都對prototype如雷貫耳,但是這究竟是個(gè)什么東西卻讓初學(xué)者莫衷一是,只知道函數(shù)都會(huì)有一個(gè)prototype屬性,可以為其添加函數(shù)供實(shí)例訪問,其它的就不清楚了,最近看了一些 JavaScript高級程序設(shè)計(jì),終于揭開了其神秘面紗
    2013-08-08
  • 微信小程序彩票號碼生成器

    微信小程序彩票號碼生成器

    這篇文章主要為大家詳細(xì)介紹了微信小程序彩票號碼生成器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 微信小程序picker組件關(guān)于objectArray數(shù)據(jù)類型的綁定方法

    微信小程序picker組件關(guān)于objectArray數(shù)據(jù)類型的綁定方法

    這篇文章主要介紹了微信小程序picker組件關(guān)于objectArray數(shù)據(jù)類型的綁定方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • JavaScript輸入框字?jǐn)?shù)實(shí)時(shí)統(tǒng)計(jì)更新

    JavaScript輸入框字?jǐn)?shù)實(shí)時(shí)統(tǒng)計(jì)更新

    這篇文章主要介紹了JavaScript輸入框字?jǐn)?shù)實(shí)時(shí)統(tǒng)計(jì)更新,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼

    微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 如何在postman測試用例中實(shí)現(xiàn)斷言過程解析

    如何在postman測試用例中實(shí)現(xiàn)斷言過程解析

    這篇文章主要介紹了如何在postman測試用例中實(shí)現(xiàn)斷言過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Javascript拖拽&拖放系列文章3之細(xì)說事件對象

    Javascript拖拽&拖放系列文章3之細(xì)說事件對象

    Javascript中的事件對象其實(shí)和.NET中繼承自EventArgs類的派生類類似,用來給事件處理程序傳遞狀態(tài)信息,從而進(jìn)行相應(yīng)的操作。這一篇文章將講述Javascript事件對象中和實(shí)現(xiàn)拖拽功能相關(guān)的幾個(gè)屬性,并在最后將IE事件模型和標(biāo)準(zhǔn)DOM事件模型的差異封裝到一個(gè)類中,從而適應(yīng)所有的瀏覽器。
    2008-09-09

最新評論

西峡县| 萝北县| 伊宁县| 资兴市| 盖州市| 奈曼旗| 方山县| 绍兴县| 壶关县| 昔阳县| 得荣县| 利津县| 海城市| 紫阳县| 镇原县| 迁西县| 武山县| 镇巴县| 湖南省| 荥经县| 区。| 河间市| 民勤县| 麟游县| 通许县| 肃南| 浑源县| 凉城县| 晋中市| 汉源县| 绍兴市| 玉山县| 泰来县| 特克斯县| 通城县| 许昌市| 石门县| 保靖县| 诏安县| 塔河县| 巩留县|