搜索

首页  >  问答  >  正文

javascript - js如何存储每次点击的索引值

这个问题可能会比较弱,但我确实是没找到好的方法去解决它,且周围没有其他前端可以问,先谢谢大家了...
有这样一个需求,dom如图

一组button,我想记录每次点击的索引值,之前我是写了一个cookie 来记录...但是最近看了闭包和作用域之后感觉我的写法多余了,应该可以直接用返回值和函数解决

这样直接打印肯定是空,因为点击是异步的,没有执行肯定没有赋值,但是这里如何去记录每一次的值呢,如果是一个普通的函数,执行一次就是了,但是这个点击也不能去单一的执行,这里应该如何存值呢?

ringa_leeringa_lee2761 天前752

全部回复(5)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:40:25

    记忆函数,记忆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()));
    });

    回复
    0
  • 黄舟

    黄舟2017-07-05 10:40:25

    console.log(click_num);放在click函数中,这样就能监测每次点击的赋值了

    回复
    0
  • 三叔

    三叔2017-07-05 10:40:25

    localstorage sessionstorage你可以试试

    回复
    0
  • 大家讲道理

    大家讲道理2017-07-05 10:40:25

    雷雷

    回复
    0
  • PHP中文网

    PHP中文网2017-07-05 10:40:25

    index保存在一个变量中是比较合理的;
    想要每次打印index就把console.log()放在click事件中

    回复
    0
  • 取消回复