zoukankan      html  css  js  c++  java
  • 小程序事件绑定、传参、捕获与冒泡

    一.常见的事件

    二.事件绑定与传参

    页面中

    不需要传参的事件

    <!--写法一 bind事件名='函数名' -->
    <view bindtap="click">我是事件</view>
    <!--写法一 bind:事件名='函数名' -->
    <view bind:tap="click">我是事件</view>

    需要传参的事件

    <!-- 点击传参   data-传过去的key='变量值' -->
    <!-- 点击传变量 data-传过去的key='{{变量名}}' -->

    <
    button bind:tap="click2" data-name="{{name}}" data-age="18" id="bt">我是按钮</button>

    .js文件

    Page({
    
      /*页面的初始数据*/
      data: {
        name:"owen"
      },
      //e为事件对象,事件所有产生的数据都在e中
      click:function(e){
        console.log("你点我了") 
      },
      click2:function(e){
        console.log("你点我了",e) 
      },
      )}

    总结:

    1 响应函数直接写在page对象中就可以了,不需要和vue一样写在methods里面
    2 <view bind:事件名称 = "响应函数的函数名" data-参数名 = "值">
    3 获取传过来的参数,在事件对象中。用e.currentTarget.dataset.属性的名称

    三、事件捕获与冒泡

    wxml页面

    <!-- capture-bind:tap 事件的捕获,从外面到里面-->
    <!-- bind:tap就是事件的冒泡,从里面到外面传递 -->
    <view class="outter" capture-bind:tap="click4" bind:tap="click7" data-a="o">外面
    
      <view class="midd" capture-bind:tap="click5" bind:tap="click8" data-a="i">
        <view class="inner"  capture-bind:tap="click6" bind:tap="click9">
          里面
        </view>
    
        中间
      </view>
    
    </view>
    
    <!-- 如何阻止事件捕获  将 capture-bind:tap改成  capture-catch:tap-->
    <view class="outter" capture-bind:tap="click4" bind:tap="click7" data-a="o">外面
    
      <view class="midd" capture-catch:tap="click5" bind:tap="click8" data-a="i">
        <view class="inner"  capture-bind:tap="click6" bind:tap="click9">
          里面
        </view>
    
        中间
      </view>
    
    </view>
    
    
    <!-- 如何阻止事件冒泡  将bind:tap 改成 catch:tap-->
    <view class="outter" capture-bind:tap="click4" bind:tap="click7" data-a="o">外面
    
      <view class="midd" capture-bind:tap="click5" bind:tap="click8" data-a="i">
        <view class="inner"  capture-bind:tap="click6" catch:tap="click9">
          里面
        </view>
    
        中间
      </view>
    
    </view>

    js文件

    // pages/test1/test1.js
    Page({
    
      data: {
        name:"owen"
    
      click4:function(e){
        console.log("捕获外")
      },
      click5:function(e){
        console.log("捕获中")
      },
      click6:function(e){
        console.log("捕获里")
      },
      click7:function(e){
        console.log("冒泡外")
      },
      click8:function(e){
        console.log("冒泡中")
      },
      click9:function(e){
        console.log("冒泡里")
      }
    })

    wxss文件

    /* pages/test1/test1.wxss */
    
    .outter{
      width: 600rpx;
      height: 600rpx;
      background-color: red;
    }
    .midd{
      width: 400rpx;
      height: 400rpx;
      background-color: blue;
    }
    .inner{
      width: 200rpx;
      height: 200rpx;
      background-color: yellow;
    }
    View Code
  • 相关阅读:
    Js五子棋游戏
    换肤
    jqzoom实战
    iphone开发笔记
    腾讯召实习生笔试题
    ajax( 汇率转化)
    20140805&nbsp;17:24
    加载上一级目录下的图片文件并得到加载图片的大小
    精确碰撞检测 bitmapData.hitTest
    buttonMode 与mouseChildren【替换鼠标之后不响应鼠标事件】
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12457490.html
Copyright © 2011-2022 走看看