2013-08-06 102 views
0

如何獲得分配給全局變量的scenario_id ..現在在控制檯打印empty string。如何解決這個問題jquery在點擊時給全局變量賦值

var scenario_id = ""; 
    $('.edit_class').click(function() { 

    scenario_id = $(this).attr('value'); 
    }); 

    console.log(scenario_id); 
+0

它應該打印一個空的字符串不是未定義的 –

+1

這是因爲'scenario_id'的值只有在單擊'edit_class'後纔會改變。您在數值更改之前記錄它。您需要將控制檯stmt移到回調方法 –

+0

明白了謝謝.. – Hulk

回答

3

scenario_id的值只會在點擊事件上分配。您的console.log()在您分配處理程序之後運行,但之前用戶點擊了edit_class,因此該值將爲undefined。試試這個看scenario_id更新值:

var scenario_id = ""; 
$('.edit_class').click(function() { 
    scenario_id = $(this).attr('value'); 
    console.log(scenario_id); 
}); 

它可以幫助你閱讀過的答案this question這也解釋了JavaScript的變量範圍。

+0

但是我想將它分配給全局變量而不是函數範圍 – Hulk

+0

通過在全局範圍內定義變量,它將成爲全局變量,無論您身在何處設置值。 – cfs