详解小程序如何动态绑定点击的执行方法

 更新时间:2019年11月26日 11:24:03   作者:KyleBing  
这篇文章主要介绍了详解小程序如何动态绑定点击的执行方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

需求

一个商城的个人中心页里,有很多用户操作按钮:我的订单,我的提现,我的送货等等,每个图标在点击的时候,可能是跳转页面的,也可能是执行当页方法的。

目前需要写一个通用的方法来实现这个功能,菜单的数据结构是一样的。

解决

菜单数据结构

title: 菜单名
iconUrl: 图标url
type: page - 跳转页面 或者 method - 执行方法
url: 点击时跳转的链接或执行方法
badge: 图标上显示的未读信息数

// 营销工具菜单组
menuListSell: [
 {id: 0, title: '开团海报', type: 'page', url: '/pages/userCenter/poster/poster' ,iconUrl: '/assets/mine/poster.png', badge: 0},
 {id: 1, title: '优惠券包', type: 'method', url: 'showDeveloping' ,iconUrl: '/assets/mine/coupon.png', badge: 4},
 {id: 2, title: '优惠活动', type: 'method', url: 'showDiscountActivity' ,iconUrl: '/assets/mine/gift.png', badge: 0},
],

页面结构是这样的

<view class="section-icons">
  <view wx:for="{{menuListNormal}}"
     wx:key="{{item.id}}"
     data-index="{{item.id}}"
     data-type="{{item.type}}"
     data-url="{{item.url}}"
     class="section-icons-item"
     bindtap="switchMenu" >
    <view class="icon">
      <image src="{{item.iconUrl}}" mode="aspectFit"></image>
      <view wx:if="{{item.badge > 0}}" class="badge">{{item.badge}}</view>
    </view>
    <text>{{item.title}}</text>
  </view>
</view>

每个图标菜单在点击的时候,都会执行 switchMenu 这个方法,获取标签上的 urltype, 再通过 type 值判断跳转页面还是执行方法,如果 type === 'page' 就跳转链接为 url 的页面,如果 type !== 'page' 就执行当页名为 url 的方法。当然,这个方法需要事先在当前页面中已经写好。

重要 主要是如何执行名为 url 的方法:因为要执行的 url 方法是 this 的一个对象,所以可以直接使用 this['对象字符串']() 来执行这个方法, this['对象字符串'] 定位到了这个方法的引用,再加上 () 就可以执行这个方法,如下:

 // 菜单点击
 switchMenu(e){
  // 获取标签上的数据
  let pageUrl = e.currentTarget.dataset.url;
  let type = e.currentTarget.dataset.type;
  if (type === 'page'){ // 跳转页面时
   wx.navigateTo({
    url: pageUrl
   })
  } else { // 调用方法时
   this[pageUrl]()
  }
 },

结果

这位,就可以实现页面跳转和方法执行了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • webpack4 入门最简单的例子介绍

    webpack4 入门最简单的例子介绍

    这篇文章主要介绍了webpack4 入门最简单的例子介绍,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 微信小程序tab切换可滑动切换导航栏跟随滚动实现代码

    微信小程序tab切换可滑动切换导航栏跟随滚动实现代码

    这篇文章主要介绍了微信小程序tab切换可滑动切换导航栏跟随滚动实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 动态加载css方法实现和深入解析

    动态加载css方法实现和深入解析

    本文主要介绍了动态加载css的方法实现和深入解析。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 为Javascript中的String对象添加去除左右空格的方法(示例代码)

    为Javascript中的String对象添加去除左右空格的方法(示例代码)

    这篇文章主要介绍了为Javascript中的String对象添加去除左右空格的方法(示例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • 详解TypeScript中枚举的使用

    详解TypeScript中枚举的使用

    枚举是 TypeScript 中一个非常有趣且实用的特性,它可以让我们更好地组织和管理代码,下面就来和大家聊聊TypeScript中枚举的具体使用吧
    2023-06-06
  • 一个简单的JavaScript Map实例(分享)

    一个简单的JavaScript Map实例(分享)

    下面小编就为大家带来一篇一个简单的JavaScript Map实例(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • JavaScript实现数组去重的14种方法大全

    JavaScript实现数组去重的14种方法大全

    亲爱的小伙伴,对于数组javascript中的数组去重方法你知道多少种呢?学会如何对数组进行去重对于javascript的学习来说也是十分重要的,下边就让我来分享一下我所知道的集中数组去重的方法吧,感兴趣的小伙伴跟着小编一起来看看吧
    2025-03-03
  • JS进阶指南之你真的掌握变量和类型了吗

    JS进阶指南之你真的掌握变量和类型了吗

    变量是存储信息的容器(JS的变量名是区分大小写的),下面这篇文章主要给大家介绍了关于JS进阶指南之变量和类型的相关资料,文章通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • javascript hasFocus使用实例

    javascript hasFocus使用实例

    hasFocus是document的特有方法.用来判断当前网页是否获得焦点.
    2010-06-06
  • 小程序中如何绘制思维导图详解

    小程序中如何绘制思维导图详解

    小程序相信大家应该都很熟悉了,对于小程序的整个运营的方法,很多运营都比较关注,今天希望通过一个思维导图,这篇文章主要给大家介绍了关于小程序中如何绘制思维导图的相关资料,需要的朋友可以参考下
    2021-10-10

最新评论