javascript - js如何存儲(chǔ)每次點(diǎn)擊的索引值
問(wèn)題描述
這個(gè)問(wèn)題可能會(huì)比較弱,但我確實(shí)是沒(méi)找到好的方法去解決它,且周?chē)鷽](méi)有其他前端可以問(wèn),先謝謝大家了...有這樣一個(gè)需求,dom如圖
一組button,我想記錄每次點(diǎn)擊的索引值,之前我是寫(xiě)了一個(gè)cookie 來(lái)記錄...但是最近看了閉包和作用域之后感覺(jué)我的寫(xiě)法多余了,應(yīng)該可以直接用返回值和函數(shù)解決
這樣直接打印肯定是空,因?yàn)辄c(diǎn)擊是異步的,沒(méi)有執(zhí)行肯定沒(méi)有賦值,但是這里如何去記錄每一次的值呢,如果是一個(gè)普通的函數(shù),執(zhí)行一次就是了,但是這個(gè)點(diǎn)擊也不能去單一的執(zhí)行,這里應(yīng)該如何存值呢?
問(wèn)題解答
回答1:記憶函數(shù),記憶button索引值及點(diǎn)擊次數(shù),當(dāng)然也可以記憶歷史點(diǎn)擊索引序列
/* 記憶button索引值及點(diǎn)擊次數(shù)還有序列 */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函數(shù)中,這樣就能監(jiān)測(cè)每次點(diǎn)擊的賦值了
回答3:localstorage sessionstorage你可以試試
回答4:$(’.button’).click(function() { console.log($(this).index());});回答5:
index保存在一個(gè)變量中是比較合理的;想要每次打印index就把console.log()放在click事件中
相關(guān)文章:
1. 小程序怎么加外鏈,語(yǔ)句怎么寫(xiě)!求救新手,開(kāi)文檔沒(méi)發(fā)現(xiàn)2. javascript - ...mapGetters和...mapState獲取到的state,怎么拿來(lái)在methods中操作?3. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件4. javascript - 在 vue里面用import引入js文件,結(jié)果為undefined5. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個(gè)制作游戲的空的黑窗口?6. Java反射問(wèn)題:為什么android.os.Message的recycleUnchecked方法不能通過(guò)反射獲取到?7. php如何獲取訪問(wèn)者路由器的mac地址8. git - 使用淘寶npm安裝hexo出現(xiàn)問(wèn)題?9. php - 微信開(kāi)發(fā)驗(yàn)證服務(wù)器有效性10. [python2]local variable referenced before assignment問(wèn)題
