javascript - 更简单的方法将 onTap 函数绑定(bind)到微信小程序中的按钮

标签 javascript wechat wechat-miniprogram

我正在为微信创建一个简单的音频播放应用程序。 在播放屏幕上,它有 5 个控制按钮 - 上一首、快退、播放/暂停、快进和下一首。 所以我创建了它们并绑定(bind)到每个事件监听函数。

<!-- part of play.wxml -->

<view class="button-group">
    <image class="button" src="../../res/img/control_prev.svg" bindtap="onPrev"></image>
    <image class="button" src="../../res/img/control_fback.svg" bindtap="onFBack"></image>
    <image class="button" src="../../res/img/control_play.svg" bindtap="onPlay"></image>
    <image class="button" src="../../res/img/control_ffor.svg" bindtap="onFFor"></image>
    <image class="button" src="../../res/img/control_next.svg" bindtap="onNext"></image>
</view>

play.js 上,我必须定义所有这 5 个函数。

/* part of play.js */

onPrev: (event) => {
    Player.prev()
},
onFBack: (event) => {
    Player.fback()
},
onPlay: (event) => {
    Player.play()
},
onFFor: (event) => {
    Player.ffor()
},
onNext: (event) => {
    Player.next()
},

我想一定有更好的方法来简化这段重复的代码。 如何将它们作为一个函数并将其绑定(bind)到多个按钮?

最佳答案

为其创建一个函数,并使用 data-* 属性为每个按钮传递一个 id。

例如,

<image class="button" src="../../res/img/control_prev.svg" bindtap="onTap" data-id="prev"></image>
<image class="button" src="../../res/img/control_fback.svg" bindtap="onTap" data-id="fback"></image>
...
onTap: (event) => {
    let id = event.currentTarget.dataset.id
    if (id == "prev")
        Player.prev()
    else if (id == "fback")
        Player.fback()
    ...

关于javascript - 更简单的方法将 onTap 函数绑定(bind)到微信小程序中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60464211/

相关文章:

javascript - 如何通过将鼠标悬停在 Javascript 中的三个按钮之一上来显示和更新隐藏的 div 元素?

ios - 在我的应用程序 UIActivityViewController 中弹出类似 Safari 的微信/微信分享表?

android - 微信API在应用程序中注册失败

android - 如何在应用程序中构建小程序(又名tinyapp)框架?

url-scheme - 如何从网页链接到特定的微信小程序?

javascript - 在 Canvas 上绘制一个充满辐射的 Angular/弧线?

javascript - 单击按钮时重新加载另一个页面

javascript - 仅从一个 div 中获取选定的文本

emoji - 哪里可以找到所有微信表情符号列表?