V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
flyingkid

如何计数

  •  
  •   flyingkid · Oct 11, 2012 · 4661 views
    This topic created in 4948 days ago, the information mentioned may be changed or developed.
    我绑定了一个事件在onclick上面,我希望每点击一次就alert +1。
    也就是第一次点弹出1,第二次就是2。
    没有后端,不用cookie。允许刷新页面重置统计的数据。
    自己写了半天,点击N次,alert还是弹出1。
    11 replies    1970-01-01 08:00:00 +08:00
    august
        1
    august  
       Oct 11, 2012
    用個 data-count="1" 來記住數據,每次彈出後加1更改
    loading
        2
    loading  
       Oct 11, 2012   ❤️ 1
    全局变量,你应该是用了局部变量
    Js
        3
    Js  
       Oct 11, 2012   ❤️ 1
    wong2
        4
    wong2  
       Oct 11, 2012
    为什么不把你的代码贴出来呢?
    013231
        5
    013231  
       Oct 11, 2012   ❤️ 1
    flyingkid
        6
    flyingkid  
    OP
       Oct 12, 2012
    @013231 我懂了。thx。
    flyingkid
        7
    flyingkid  
    OP
       Oct 12, 2012
    @Js 你的用户名真拉风。代码更拉风。就是这个。你这个我暂时没看懂。
    你这个很简洁!

    ```
    <script type="text/javascript">
    window.onload = function () {
    var btn = document.getElementsByTagName('button')[0]
    btn.onclick = (function() {
    var n = 0
    return function() {
    alert(++n)
    }
    })()
    }
    </script>
    ```
    flyingkid
        8
    flyingkid  
    OP
       Oct 12, 2012
    @loading 刚刚又搞了一下。我把变量放到外部(全局变量)结果就OK了。thx。
    对于函数、作用域这些印象加深了。
    hpyhacking
        9
    hpyhacking  
       Oct 12, 2012
    @flyingkid 建议恶补一下
    bigmusic
        10
    bigmusic  
       Oct 12, 2012
    闭包正解
    huaxinjiayou
        11
    huaxinjiayou  
       Oct 13, 2012   ❤️ 1
    闭包正解
    没必要全局
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5299 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 03:30 · PVG 11:30 · LAX 20:30 · JFK 23:30
    ♥ Do have faith in what you're doing.