您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“HTML5自定義屬性問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“HTML5自定義屬性問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
問題背景
在頁面與js傳值中我們經常用到data-id="1"的方式,然后通過e.target.dataset.id
取id的值
今天在獲取值時怎么也取不到
問題分析
后來發現e對象有currentTarget和target屬性,而dataset就在currentTarget中,所以通過e.currentTarget.dataset.id
取到了正確的值。
另外data-id="1"最好不要用駝峰命名如:data-Id="1"
,這樣有時候也取不到值。
HTML5 自定義屬性
網站中經常會看到以data-開頭的屬性定義,雖然W3C不認定,但最新HTML5規定data-是合理的,在HTML5中,任何以data-開始的都是自定義屬性,通常它用來實現一些HTML里沒有明確定義的元素,把用戶自定義的屬性應用到代碼中
微信小程序文檔
什么是事件
事件是視圖層到邏輯層的通訊方式。
事件可以將用戶的行為反饋到邏輯層進行處理。
事件可以綁定在組件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函數。
事件對象可以攜帶額外信息,如 id, dataset, touches。
事件的使用方式
在組件中綁定一個事件處理函數。
如bindtap,當用戶點擊該組件的時候會在該頁面對應的Page中找到相應的事件處理函數。
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
在相應的Page定義中寫上相應的事件處理函數,參數是event。
Page({
tapName: function(event) {
console.log(event)
}
})
可以看到log出來的信息大致如下:
{
"type":"tap",
"timeStamp":895,
"target": {
"id": "tapTest",
"dataset": {
"hi":"WeChat"
}
},
"currentTarget": {
"id": "tapTest",
"dataset": {
"hi":"WeChat"
}
},
"detail": {
"x":53,
"y":14
},
"touches":[{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14
}],
"changedTouches":[{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14
}]
}
使用WXS函數響應事件
讀到這里,這篇“HTML5自定義屬性問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。