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

微信小程序 教程之事件

 更新時間:2016年10月18日 10:38:31   投稿:lqh  
這篇文章主要介紹了微信小程序 事件的相關資料,并附實例代碼,需要的朋友可以參考下

系列文章:

微信小程序 教程之WXSS
微信小程序 教程之引用
微信小程序 教程之事件
微信小程序 教程之模板
微信小程序 教程之列表渲染
微信小程序 教程之條件渲染
微信小程序 教程之數(shù)據(jù)綁定
微信小程序 教程之WXML

什么是事件

  1. 事件是視圖層到邏輯層的通訊方式。
  2. 事件可以將用戶的行為反饋到邏輯層進行處理。
  3. 事件可以綁定在組件上,當達到觸發(fā)事件,就會執(zhí)行邏輯層中對應的事件處理函數(shù)。
  4. 事件對象可以攜帶額外信息,如id, dataset, touches。

事件的使用方式

在組件中綁定一個事件處理函數(shù)。

如bindtap,當用戶點擊該組件的時候會在該頁面對應的Page中找到相應的事件處理函數(shù)。

<view id="tapTest" data-hi="MINA" bindtap="tapName"> Click me! </view>

在相應的Page定義中寫上相應的事件處理函數(shù),參數(shù)是event。

Page({
 tapName: function(event) {
 console.log(event)
 }
})

可以看到log出來的信息大致如下

{
"type": "tap",
"timeStamp": 1252,
"target": {
 "id": "tapTest",
 "offsetLeft": 0,
 "offsetTop": 0,
 "dataset": {
 "hi": "MINA"
 }
},
"currentTarget": {
 "id": "tapTest",
 "offsetLeft": 0,
 "offsetTop": 0,
 "dataset": {
 "hi": "MINA"
 }
},
"touches": [{
 "pageX": 30,
 "pageY": 12,
 "clientX": 30,
 "clientY": 12,
 "screenX": 112,
 "screenY": 151
}],
"detail": {
 "x": 30,
 "y": 12
}
}

事件詳解

事件分類

事件分為冒泡事件和非冒泡事件

1.冒泡事件:當一個組件上的事件被觸發(fā)后,該事件會向父節(jié)點傳遞。

2.非冒泡事件:當一個組件上的事件被觸發(fā)后,該事件不會向父節(jié)點傳遞。

WXML的冒泡事件列表:

類型 觸發(fā)條件
touchstart 手指觸摸
touchmove 手指觸摸后移動
touchcancel 手指觸摸動作被打斷,如來電提醒,彈窗
touchend 手指觸摸動作結束
tap 手指觸摸后離開
longtap 手指觸摸后,超過350ms再離開

注:除上表之外的其他組件自定義事件都是非冒泡事件,如<form/>的submit事件,<input/>的input事件,<scroll-view/>的scroll事件,(詳見各個組件)

事件綁定

事件綁定的寫法同組件的屬性,以key、value的形式。

key以bind或catch開頭,然后跟上事件的類型,如bindtap, catchtouchstart

value是一個字符串,需要在對應的Page中定義同名的函數(shù)。不然當觸發(fā)事件的時候會報錯。

bind事件綁定不會阻止冒泡事件向上冒泡,catch事件綁定可以阻止冒泡事件向上冒泡。

如在下邊這個例子中,點擊inner view會先后觸發(fā)handleTap1和handleTap2(因為tap事件會冒泡到middle view,而middle view阻止了tap事件冒泡,不再向父節(jié)點傳遞),點擊middle view會觸發(fā)handleTap2,點擊outter view會觸發(fā)handleTap1。

<view id="outter" bindtap="handleTap1">
 outer view
 <view id="middle" catchtap="handleTap2">
 middle view
 <view id="inner" bindtap="handleTap3">
  inner view
 </view>
 </view>
</view>

事件對象

如無特殊說明,當組件觸發(fā)事件時,邏輯層綁定該事件的處理函數(shù)會收到一個事件對象。

事件對象的屬性列表:

屬性 類型 說明
type String 事件類型
timeStamp Integer 事件生成時的時間戳
target Object 觸發(fā)事件的組件的一些屬性值集合
currentTarget Object 當前組件的一些屬性值集合
touches Array 觸摸事件,觸摸點信息的數(shù)組
detail Object 額外的信息

通用事件類型

timeStamp

該頁面打開到觸發(fā)事件所經(jīng)過的毫秒數(shù)。

target

觸發(fā)事件的源組件。

屬性 說明
id 事件源組件的id
dataset 事件源組件上由data-開頭的自定義屬性組成的集合
offsetLeft, offsetTop 事件源組件的坐標系統(tǒng)中偏移量

currentTarget

事件綁定的當前組件。

屬性 說明
id 當前組件的id
dataset 當前組件上由data-開頭的自定義屬性組成的集合
offsetLeft, offsetTop 當前組件的坐標系統(tǒng)中偏移量

說明: target和currentTarget可以參考上例中,點擊inner view時,handleTap3收到的事件對象target和currentTarget都是inner,而handleTap2收到的事件對象target就是inner,currentTarget就是middle

dataset

在組件中可以定義數(shù)據(jù),這些數(shù)據(jù)將會通過事件傳遞給SERVICE。 書寫方式: 以data-開頭,多個單詞由連字符-鏈接,不能有大寫(大寫會自動轉成小寫)如data-element-type,最終在event.target.dataset中會將連字符轉成駝峰elementType。

示例:

<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>

Page({
 bindViewTap:function(event){
 event.target.dataset.alphaBeta == 1 // - 會轉為駝峰寫法
 event.target.dataset.alphabeta == 2 // 大寫會轉為小寫
 }
})

touches

touches是一個觸摸點的數(shù)組,每個觸摸點包括以下屬性:

屬性 說明
pageX,pageY 距離文檔左上角的距離,文檔的左上角為原點 ,橫向為X軸,縱向為Y軸
clientX,clientY 距離頁面可顯示區(qū)域(屏幕除去導航條)左上角距離,橫向為X軸,縱向為Y軸
screenX,screenY 距離屏幕左上角的距離,屏幕左上角為原點,橫向為X軸,縱向為Y軸

特殊事件所攜帶的數(shù)據(jù),如表單組件的提交事件會攜帶用戶的輸入,媒體的錯誤事件會攜帶錯誤信息,詳見組件定義中各個事件的定義。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 利用JavaScript寫一個簡單計算器

    利用JavaScript寫一個簡單計算器

    這篇文章主要介紹了?如何利用JavaScript寫一個簡單計算器,利用JavaScript寫一個簡單計算器算是一個簡單的小練習吧,需要的小伙伴可以參考一下<BR>
    2021-11-11
  • 項目中常用的 .env 文件原理源碼解析

    項目中常用的 .env 文件原理源碼解析

    這篇文章主要為大家介紹了項目中常用的 .env 文件原理源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • JavaScript中5個常用的對象

    JavaScript中5個常用的對象

    JavaScript是一門腳本語言,不同于Python的是,它是一門瀏覽器腳本語言,而Python則是服務器腳本語言,我們不光要會Python,還要會JavaScript,因為它對做網(wǎng)頁方面是有很大作用的。本篇內(nèi)容小編就來詳細解說JavaScript常用的對象,需要的朋友可以參考一下
    2021-10-10
  • 微信小程序 教程之注冊程序

    微信小程序 教程之注冊程序

    這篇文章主要介紹了微信小程序 教程之注冊程序的相關資料,需要的朋友可以參考下
    2016-10-10
  • 微信小程序 動態(tài)綁定事件并實現(xiàn)事件修改樣式

    微信小程序 動態(tài)綁定事件并實現(xiàn)事件修改樣式

    這篇文章主要介紹了微信小程序 動態(tài)綁定事件并實現(xiàn)事件修改樣式的相關資料,需要的朋友可以參考下
    2017-04-04
  • Moment的feature導致線上bug解決分析

    Moment的feature導致線上bug解決分析

    這篇文章主要為大家介紹了Moment的feature導致線上bug解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 微信公眾號菜單配置微信小程序實例詳解

    微信公眾號菜單配置微信小程序實例詳解

    這篇文章主要介紹了微信公眾號菜單配置微信小程序實例詳解的相關資料,需要的朋友可以參考下
    2017-03-03
  • 微信小程序之前臺循環(huán)數(shù)據(jù)綁定

    微信小程序之前臺循環(huán)數(shù)據(jù)綁定

    這篇文章主要介紹了微信小程序之前臺循環(huán)數(shù)據(jù)綁定的相關資料,這里提供實例幫助大家學習理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • 最新評論

    惠安县| 遂平县| 邵武市| 富锦市| 五家渠市| 正镶白旗| 定边县| 任丘市| 建昌县| 卓资县| 绥滨县| 耒阳市| 龙山县| 东丽区| 涟水县| 德惠市| 子长县| 贡觉县| 南宁市| 彭泽县| 二连浩特市| 双峰县| 长垣县| 靖宇县| 临江市| 惠州市| 通化县| 沈丘县| 瓦房店市| 青川县| 武夷山市| 扬中市| 凉山| 定安县| 兴化市| 玛沁县| 张家界市| 左云县| 元谋县| 泸定县| 突泉县|