搜尋

首頁  >  問答  >  主體

javascript - js如何儲存每次點擊的索引值

這個問題可能會比較弱,但我確實是沒找到好的方法去解決它,並且周圍沒有其他前端可以問,先謝謝大家了...
有這樣一個需求,dom如圖

一組button,我想記錄每次點擊的索引值,之前我是寫了一個cookie 來記錄...但是最近看了閉包和作用域之後感覺我的寫法多餘了,應該可以直接用傳回值和函數解決

這樣直接列印肯定是空,因為點擊是異步的,沒有執行肯定沒有賦值,但是這裡如何去記錄每一次的值呢,如果是一個普通的函數,執行一次就是了,但是這個點擊也不能去單一的執行,這裡該如何存值呢?

ringa_leeringa_lee2746 天前743

全部回覆(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
  • 取消回覆