2016-01-06 25 views
0
var main=function(){ 
    var p=0; 
$('#plus').click(function(){ 
    p++; 
    $('#txt').text(p);//inside event handler 
}); 
$('#val').text(p);//outside eventhandler 
}; 
$(document).ready(main); 

img全局變量裏面click()事件我得到增加的值,但外面我得到默認值?

+0

爲什麼它會是相同的,如果'p'的價值只有在'click'事件改變? – haim770

+0

,因爲'p'只會增加點擊事件的觸發事件,但外部代碼在事件觸發之前運行。 –

回答

0

這是因爲,你在頁面加載分配價值#val,你增加它的點擊,但不重新分配更新價值#val。我已經添加了一個setInterval,它每秒記錄p的值,以用於演示目的。

var main = function() { 
 
    var p = 0; 
 
    $('#plus').click(function() { 
 
    p++; 
 
    $('#txt').text(p); //inside event handler 
 
    }); 
 
    $('#val').text(p); //outside eventhandler 
 
    
 
    var count = 0; 
 
    
 
    // Test function to log value of "p" every second. 
 
    var interval = setInterval(function(){ 
 
    count++; 
 
    console.log(p) 
 
    
 
    // Clear interval on a threshold, so as to not spam with events. 
 
    if(count>100) 
 
     window.clearInterval(interval); 
 
    }, 1000) 
 
}; 
 
$(document).ready(main);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<p id="txt" ></p> 
 
<button id="plus">Plus</button> 
 
<p id="val" ></p>

相關問題