javascript - js如何存储每次点击的索引值
问题描述
这个问题可能会比较弱,但我确实是没找到好的方法去解决它,且周围没有其他前端可以问,先谢谢大家了...有这样一个需求,dom如图
一组button,我想记录每次点击的索引值,之前我是写了一个cookie 来记录...但是最近看了闭包和作用域之后感觉我的写法多余了,应该可以直接用返回值和函数解决
这样直接打印肯定是空,因为点击是异步的,没有执行肯定没有赋值,但是这里如何去记录每一次的值呢,如果是一个普通的函数,执行一次就是了,但是这个点击也不能去单一的执行,这里应该如何存值呢?
问题解答
回答1:记忆函数,记忆button索引值及点击次数,当然也可以记忆历史点击索引序列
/* 记忆button索引值及点击次数还有序列 */function memoizer() { let buttonIndexClickTimeHistory = {}; let buttonIndexClickQueueHistory = []; return function(idx) {if (typeof buttonIndexClickTimeHistory[idx] === ’number’) { buttonIndexClickTimeHistory[idx] ++;} else { buttonIndexClickTimeHistory[idx] = 1;}buttonIndexClickQueueHistory.push(idx);return { buttonIndexClickTimeHistory, buttonIndexClickQueueHistory}; };}const f = memoizer();$(’.button’).on(’click’, function() { console.log(f($(this).index()));});回答2:
把console.log(click_num);放在click函数中,这样就能监测每次点击的赋值了
回答3:localstorage sessionstorage你可以试试
回答4:$(’.button’).click(function() { console.log($(this).index());});回答5:
index保存在一个变量中是比较合理的;想要每次打印index就把console.log()放在click事件中
相关文章:
1. mysql - sql 语句更改表结构,添加多个列,怎么写?2. javascript - vue中父组件向子组件传递Object时,如何避免TypeError?3. angular.js - 在移动端web上如何解决输入法挡住文本框问题?4. javascript - 怎么设计项目的返回码,让不同的返回码代表不同的含义?5. javascript - svg小白,想要在svg里面插入图片6. android-studio - Android Studio 2.2 beta2 更新后强制将 Gradle 版本升级为 2.14.1,有没有遇到同样情况的?7. python - 关于django 模板中循环列表8. css3 怎么实现锯齿状的剪纸效果(如图)9. html5 - 如何利用Canvas技术制作出上下跳动的音乐谱10. mac连接阿里云docker集群,已经卡了2天了,求问?