微信小程序04

<!-- 给标签绑定事件处理函数 -->

<input type="text" bindinput="handleInput" bindblur="handleBlur"/>
<input type="password" />
<!-- 通过自定义属性进行传参:属性名必须以data-开头 -->
<button bindtap="handleBtn" data-opr="1" param='ok'>+</button>
<button bindtap="handleBtn" data-opr="-1">-</button>
<!-- 小程序会解析为: handleBtn(2)这是一个方法名:
    handleBtn(2)(e)这是最终的方法调用
-->
<button bindtap="handleBtn(2)">*</button>

<view>
    num: {{num}}
</view>
// pages/demo02/demo02.js
Page({ // 这里定义的函数中的this都是页面对象

  /**
   * 页面的初始数据
   */
  data: {
      num: 0
  },

  // 输入框输入时即触发
  handleInput: function (e) {
    // console.log(this)
    // let value = e.detail.value; // value的类型为string
    // for (let i = 0; i < e.detail.value.length; i++) {
    //   console.log(e.detail.value.charCodeAt(i));
    //   if (e.detail.value.charCodeAt(i) < 48 || e.detail.value.charCodeAt(i) > 48 + 9) {
    //     console.log("非数字错误");
    //     return;
    //   }
    // }
    // // 不能通过this.data.num或this.num来操作data中的num值
    // // 通过调用函数来实现num值的更改:级联更新界面
    this.setData({
      num: parseInt(e.detail.value) // 将字符串转换为整型
    });
  },

  // 失去焦点触发
  handleBlur: function (e) {
  // this.setData()方法不仅更新内存的数据;同时刷新页面
   this.setData({
     num: 10
   });
   console.log(this.data.num)
  },

  // 点击按钮触发的事件
  handleBtn: function (e) {
    // 更新内存中的数据
    this.data.num += parseInt(e.currentTarget.dataset.opr);
    // 更新内存中的数据与更新界面
    this.setData({
      num: this.data.num
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //console.log(this)
    let pages = getCurrentPages(); // 获取当前所有的页面
    console.log(pages);
    console.log(this === pages[0]); // true
    // 
    console.log(this.data.num);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
  • 给标签绑定事件:bingxxx=“方法名称”:只是方法名称,不能带有小括号以及参数:参数是通过自定义属性来传递的:自定义属性的名称必须以data-开头:事件源中获取自定义属性的值即获取了实际参数值
  • 获取输入框的值:是通过事件源对象获取的
  • 更新data中的变量的值以及界面:不是通过this.data.xxx或this.xxx完成的,而是通过
this.setData({
xxx: yyy
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值