微信小程序節點相關總結

微信小程序節點事件總結

  • bindtap、catchtap、bindclick的區別?
    • `bindclick` 和 `bindtap` 的區別在于:
  • e.target和e.currentTarget
  • e.type
  • e.timeStamp
  • 觸摸事件屬性(針對觸摸類事件)
  • 坐標信息
  • 事件綁定數據
  • 冒泡與捕獲相關
  • 其他特殊屬性
      • **常見事件類型及特有屬性**
  • **總結**

bindtap、catchtap、bindclick的區別?

bindtap 手機端沒響應,編輯器正常。pointer-events: none/auto;
如果在手機端使用 bind:tap 沒有響應,但在編輯器中正常,可以嘗試以下解決方法:

  1. 檢查事件綁定:確保事件正確綁定到元素上,且沒有語法錯誤。
  2. 確保沒有阻止事件:檢查是否有其他事件處理程序或 CSS 樣式(如 pointer-events: none)阻止點擊。
  3. 調試日志:在事件處理函數中添加 console.log 語句,確認函數是否被調用。
  4. 更新小程序基礎庫:確保使用的是最新版本的小程序基礎庫。
  5. 重啟設備:有時重啟手機可以解決臨時問題。
  6. 檢查網絡:如果事件中有網絡請求,確保網絡正常。
  7. 使用其他事件:嘗試使用 bindclick 代替 bindtap 看是否有效。

bindclickbindtap 的區別在于:

  1. 觸發方式
    • bindclick:適用于鼠標點擊(PC端)或長按后松開(移動端)。
    • bindtap:適用于快速觸摸,通常用于移動端。
  2. 事件響應
    • bindclick:可能會有延遲。
    • bindtap:響應更快,適合快速交互。
  3. 兼容性
    • bindclick 更通用,適用于多種設備。
    • bindtap 更適合移動設備的觸摸操作。
      總體來說,bindtap 更適合移動端的用戶體驗。

e.target和e.currentTarget

寫了個嵌套層級的元素A-B,A上獲取dataset的內容,事件寫在A上,點擊到內部的元素B的時候,e.target是B元素節點,e.currentTarget才是A節點,才有數據。
事件源(target事件綁定元素(currentTarget 的區別。

e.type

事件類型(如 taptouchstartchange 等)。

e.timeStamp

事件觸發的時間戳(毫秒)。

觸摸事件屬性(針對觸摸類事件)

  • touches
    當前屏幕上所有觸摸點的信息(數組)。
    示例

    console.log('當前觸摸點:', e.touches); 
    // 輸出: [{ identifier: 0, pageX: 100, pageY: 200 }]
    
  • changedTouches
    觸摸狀態發生變化的觸摸點信息(數組)。
    示例

    console.log('變化的觸摸點:', e.changedTouches); 
    // 輸出: [{ identifier: 0, pageX: 100, pageY: 200 }]
    
  • detail
    事件特定的額外信息(如 input 事件中的輸入值)。
    示例

    <input bindinput="onInput" />
    
    onInput(e) {console.log('輸入值:', e.detail.value); // 輸出用戶輸入的內容
    }
    

坐標信息

  • pageX / pageY
    觸摸點在整個頁面中的坐標(相對于頁面左上角)。
    示例

    console.log('頁面坐標:', e.pageX, e.pageY); // 輸出: 100, 200
    
  • clientX / clientY
    觸摸點在當前視窗中的坐標(相對于視窗左上角)。
    示例

    console.log('視窗坐標:', e.clientX, e.clientY); // 輸出: 80, 150
    

事件綁定數據

  • currentTarget.dataset
    綁定事件元素(bindtap 所在元素)的 data-* 屬性。
    示例
    <view data-id="123" bindtap="handleTap"></view>
    
    handleTap(e) {console.log('數據ID:', e.currentTarget.dataset.id); // 輸出: "123"
    }
    

冒泡與捕獲相關

  • bubbles
    事件是否冒泡(布爾值)。
    示例

    console.log('是否冒泡:', e.bubbles); // 輸出: true/false
    
  • cancelable
    事件是否可以被取消(布爾值)。
    示例

    console.log('是否可取消:', e.cancelable); // 輸出: true/false
    

其他特殊屬性

  • target.id / currentTarget.id
    觸發事件元素或綁定事件元素的 id 屬性。
    示例

    <view id="myView" bindtap="handleTap"></view>
    
    handleTap(e) {console.log('元素ID:', e.currentTarget.id); // 輸出: "myView"
    }
    
  • target.dataset / currentTarget.dataset
    區分觸發事件元素與綁定事件元素的 data-* 屬性。
    示例

    <view data-id="parent" bindtap="handleTap"><text data-id="child">點擊我</text>
    </view>
    
    handleTap(e) {console.log('target數據:', e.target.dataset.id); // 可能輸出: "child"console.log('currentTarget數據:', e.currentTarget.dataset.id); // 輸出: "parent"
    }
    

常見事件類型及特有屬性

事件類型特有屬性說明
tap-點擊事件
longpress-長按事件
touchstarttouches, changedTouches觸摸開始
touchmovetouches, changedTouches觸摸移動
touchendtouches, changedTouches觸摸結束
inputdetail.value輸入框內容變化
changedetail.value表單組件值變化(如 checkbox
scrolldetail.scrollTop滾動事件

總結

根據事件類型不同,可獲取的屬性也有所差異。在處理事件時,建議:

  1. 優先使用 currentTarget 獲取綁定事件元素的數據。
  2. 通過 detail 獲取特定事件的額外信息(如輸入值、滾動位置)。
  3. 利用坐標屬性pageXclientX)實現交互效果(如拖拽)。

示例代碼:

handleEvent(e) {console.log('事件信息匯總:');console.log('類型:', e.type);console.log('坐標:', e.pageX, e.pageY);console.log('數據:', e.currentTarget.dataset);console.log('額外信息:', e.detail);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88394.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88394.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88394.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XSD是什么,與XML關系

XSD&#xff08;XML Schema Definition&#xff09;是用于描述XML文檔結構和內容的一種規范。它定義了XML文檔中元素、屬性、數據類型、數據格式以及它們之間的關系和約束。XSD是W3C&#xff08;萬維網聯盟&#xff09;推薦的標準之一&#xff0c;它比早期的DTD&#xff08;Doc…

Ubuntu服務器中MySQL如何進行主從復制

一、MySQL 主從復制基本原理 MySQL 主從復制是指&#xff1a;一臺數據庫服務器負責寫入操作&#xff0c;并將數據變更以二進制日志形式記錄下來;一臺或多臺從庫通過讀取主庫的二進制日志&#xff0c;實時或半實時地將主庫的寫入操作同步到自身數據庫&#xff0c;實現數據一致性…

Android圖形系統框架解析

前言 Android圖形系統對于開發者來說可能會比較難以理解&#xff0c;因為涉及的東西可能會計較多&#xff0c;比如Android自己的圖形系統。OpenGL&#xff0c;視頻編解碼器&#xff0c;SurfaceFlinger&#xff0c;FrameBuffer等等。下面我們結合官方文檔&#xff0c;介紹一下圖…

AI智能巡檢系統給烘焙店開的「減損藥方」 InfiSight智睿視界

01 食材浪費&#xff1a;甜蜜產業的苦澀成本 后廚操作臺上&#xff0c;剛過最佳賞味期的可頌成批倒入垃圾桶——這是烘焙店最隱秘的痛。現烤現售模式雖保障新鮮度&#xff0c;卻讓原料管理淪為盲區&#xff1a; 銷售數據≠生產指南&#xff1a;總部無法感知門店實時庫存 …

工具 | vscode 發出聲音,如何關閉

設置->搜 accessibility -> Accessibility Support -> 自動 改為 off 設置->搜 volume -> 0 設置->搜 sound -> 輔助功能信號 -> sound的 自動 改為 off 參考&#xff1a; How to turn off (or on) sounds from Visual Studio Code? - Stack Ove…

Hyperf 數據庫事務指南(PHP 框架)

Hyperf 數據庫事務指南&#xff08;PHP 框架&#xff09; 1. ?? 數據庫配置 1.1 配置文件 MySQL 配置位于 config/database.php&#xff0c;通常通過環境變量&#xff08;.env&#xff09;管理敏感信息&#xff1a; <?phpdeclare(strict_types 1); /*** This file i…

動態ds-vnp之normal和shortcut兩種方式配置案例

normal方式配置 hub配置 dhcp enable interface GigabitEthernet0/0/0 ip address 3.3.3.3 255.255.255.0 interface GigabitEthernet0/0/1 ip address 192.168.3.254 255.255.255.0 dhcp select interface interface Tunnel0/0/0 ip address 10.1.1.3 255.255.255.0 tunnel…

ubuntu20.04調試livox aiva驅動獲取激光雷達數據

實驗環境ubuntu20.04 平臺包括本地x86平臺和jetson orin平臺都測試ok 參考 ubuntu20.04上獲取Livox Avia雷達點云數據 1.下載相關資料 下載包括&#xff1a;Livox Avia 用戶手冊中文.pdf、Livox_Viewer_For_Linux_Ubuntu16.04_x64_0.10.0&#xff08;用于顯示激光雷達數據&am…

VS2022 C#【自動化文件上傳】AutoFileUpload 新需求 V13

這里寫自定義目錄標題 需求分析實現方法原來&#xff08;需要修改的位置&#xff09;替換為如下代碼&#xff08;添加三行數據&#xff09; 需求 現在已有程序&#xff1a;AutoFileUpload 存儲excel表中時間列的第一列的列名到數據庫中 分析 user只是想存儲列名到數據表列去…

技術QA | ADC/DAC芯片測試研討會筆記請查收!

6月19日&#xff0c;《ADC/DAC芯片測試前沿&#xff1a;德思特ATX系統高效方案與實戰攻略》線上研討會圓滿結束。感謝大家的觀看與支持&#xff01; 在直播間收到一些觀眾的技術問題&#xff0c;我們匯總了熱點問題并請講師詳細解答&#xff0c;在此整理分享給大家&#xff0c…

區塊鏈技術未來的發展趨勢

以下是區塊鏈技術未來的一些發展趨勢&#xff1a; 技術層面 - 性能提升&#xff1a;分片技術會不斷成熟和完善&#xff0c;將區塊鏈網絡劃分為多個分片&#xff0c;每個分片獨立處理交易&#xff0c;以提高交易吞吐量和網絡可擴展性。同時&#xff0c;共識機制也會持續創新&a…

電商領域企業級應用后端開發 (Java) 就業前景深度分析報告 (2025-2030)

目錄 一、行業概述與發展趨勢 1.1 電商行業發展現狀與趨勢 1.2 電商技術架構演進與趨勢 二、電商領域 Java 開發崗位需求分析 2.1 崗位數量變化趨勢 2.2 崗位地域分布特點 2.3 崗位層級與職責變化 三、電商領域 Java 開發人才競爭分析 3.1 人才供需狀況 3.2 人才競爭核…

DVWA Brute Force漏洞深度分析與利用指南

DVWA簡介 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一個基于PHP/MySQL的脆弱性Web應用平臺&#xff0c;專為安全專業人員設計&#xff0c;用于測試技能和工具。它包含十大安全模塊&#xff0c;其中Brute Force&#xff08;暴力破解&#xff09;是最基礎…

【Android】Activity 的生命周期和啟動模式

文章目錄 Activity 的生命周期和啟動模式1. 任務和返回棧2. Activity 的四種狀態2.1 運行狀態2.2 暫停狀態2.3 停止狀態2.4 銷毀狀態 3. Activity的生命周期3.1 生命周期回調方法3.2 演示 Activity 的生命周期 4. Activity的啟動模式4.1 standard&#xff08;標準模式&#xff…

八大架構憲法 - 技術使用指導說明文檔

我們定義了八部宏偉的“架構憲法”,這份 《八大架構憲法技術使用指導說明文檔》,將作為交付給人類架構師和高級AI代理的 “戰術手冊”。 核心目標是:將每一部憲法的抽象哲學,轉化為在項目不同階段中、具體的、可操作的技術決策指南。回答一個關鍵問題:“在選擇了某一部憲…

創建頂部導航

導航組件,在layout文件夾下面新建 ResponsiveNavbar.vue <template><nav class"navbar" :class"{ navbar--mobile: isMobile }"><div class"navbar-container"><!-- Logo --><div class"navbar-logo">…

AI對話導出工具 (AI Chat Exporter)——支持 ChatGPT, Grok 和 Gemini 平臺

&#x1f680; AI對話導出工具 (AI Chat Exporter) 輕松將AI對話導出為標準Markdown格式 支持 ChatGPT, Grok 和 Gemini 平臺 相關代碼已開源至 Github 歡迎Star ? 功能特點 &#x1f504; 多平臺支持&#xff1a;同時支持 ChatGPT, Grok 和 Gemini 三大AI平臺&#x1f4dd;…

【MATLAB代碼】基于MVC的EKF和經典EKF對三維非線性狀態的濾波,提供濾波值對比、誤差對比,應對跳變的觀測噪聲進行優化

本文所述的代碼實現了改進的擴展卡爾曼濾波算法&#xff08;MVC-EKF&#xff09;&#xff0c;針對三維運動估計場景&#xff0c;與經典EKF算法進行性能對比。代碼通過引入Versoria函數優化協方差更新過程&#xff0c;顯著提升了在測量異常值干擾下的狀態估計魯棒性。 文章目錄 …

【Linux】Linux系統的基礎操作

目錄 常用命令速遞 系統目錄結構及路徑 Linux 常用命令 做兩個小項目 據此操作 用戶配額 前言 當下&#xff0c;Linux 系統作為開源操作系統&#xff0c;意義和作用重大。技術上&#xff0c;其開源特性極大推動軟件開發進步&#xff0c;全球開發者可共同完善&#xff0c…

使用 C++/OpenCV 構建中文 OCR 系統:實現賬單、發票及 PDF 讀取

使用 C/OpenCV 構建中文 OCR 系統&#xff1a;實現賬單、發票及 PDF 讀取 在當今數字化浪潮中&#xff0c;自動從文檔中提取信息至關重要&#xff0c;尤其是在處理大量賬單、發票和 PDF 文件時。光學字符識別&#xff08;OCR&#xff09;技術是實現這一目標的核心。本文將詳細…