在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JavaScript中一個函數(shù)怎么獲得另一個函數(shù)中變量

JavaScript中一個函數(shù)怎么獲得另一個函數(shù)中變量

代碼如下

$(function(){
    $('.a').on('click',function(){
        var counter=0
        counter++
    })
    
    $('.b').on('click',function(){
        if(counter>=3){
            alert(大于3)
        }
    })
})

有2個按鈕,a和b,點擊a,變量counter會增加1。當b按鈕點擊的時候,如果變量counter大于等于3時,會彈出提示框。
因為counter不是全局變量,每次點擊之后會被銷毀,所以每次counter都是1,如果用閉包,該怎么實現(xiàn)。再不使用全局變量的情況下,b按鈕點擊的函數(shù)中又應(yīng)該怎么獲得a按鈕函數(shù)中的counter值。

回答
編輯回答
痞性

一定要在上層作用域聲明的,比如這樣

$(function(){

    (function() {
        var counter = 0;
        
        $('.a').on('click',function() {
            counter++;
        });
        
        $('.b').on('click',function() {
            if(counter > 3) {
                alert('大于3');
            }
        });
    })();
})
2017年7月13日 06:49
編輯回答
乖乖噠

因為你用匿名函數(shù)包裝了一層,所以在這個匿名函數(shù)內(nèi)定義的局部變量,在子級函數(shù)中是有效的,即你應(yīng)該:

$(function(){
    var counter=0;
    $('.a').on('click',function(){
        counter++;
    })
    
    $('.b').on('click',function(){
        if(counter>=3){
            alert(大于3);
        }
    })
})

你原來對a的監(jiān)聽函數(shù)邏輯會導(dǎo)致counter永遠是1,因為每次進入你都是初始化為0,然后加1的。

2018年5月8日 05:24