微信小程序一次性事件实现

  1. 场景
  2. once函数
  3. 小程序代码示例
  4. 总结

场景

在开发原生小程序时,可能会一种场景,比如我对某一个点击事件,多次点击只触发一次,这是常见的once函数做的事情,但是如何用在小程序里面呢,下面给大家看看我的处理方法。

once函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function once(fn, context) {

return function() {

if (fn) {

fn.apply(context || this, arguments)

fn = null

}

}

}

小程序代码示例

  • wxml
1
<view bindtap="click">点我</view>
  • js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Page({

data: {},

result: null,

onLoad: function () {

this.result = once(this.actualClick, this)

},



actualClick() {

console.log(1)

},

click() {

this.result()

},

})

function once(fn, context) {

return function() {

if (fn) {

fn.apply(context || this, arguments)

fn = null

}

}

}

总结

once返回的函数要存起来,而且只存一次,并且要获取到page实例,所以需要在onload里面初始化。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏