2013-07-16 114 views
0

我有一個函數,在該函數中聲明變量,我需要另一個函數,將使用這些變量,並將運行時,我點擊一個HTML文檔上的按鈕,我創建一個嵌套函數並調用它,如果是這樣怎麼樣?在JavaScript和變量範圍嵌套函數?

+4

良好的開端:http://stackoverflow.com/questions/111102/how-do-javascript- closures-work – Barmar

+0

你可以綁定到外部函數中的按鈕,或者將變量戳到全局變量並直接從html attribs調用它們。 – dandavis

+0

將所有的變量輸入爲'window.variableName',你可以在任何地方使用它們。這很棒! – adeneo

回答

2
function outer(some_var) { 
    function inner() { 
    alert(some_var); 
    } 
    document.getElementById("my_button").onclick = inner; 
    // or 
    document.getElementById("my_button").addEventListener("click", inner); 
} 
0

JAVASCRIPT:

function MyFunction_outer(){ 
    var local variable1=some_value; 
    var MyFunction_inner=function(some_value){ 
    alert(some_value); 
     } 
    } 

HTML:

//this is how call a function onclick. 

     <div onclick="MyFunction_outer" >CLICK_ME</div>//for outer function 
     <div onclick="MyFunction_inner" >CLICK_ME</div>//for inner function 

這是你如何調用一個函數。 如果您不想編寫內聯代碼並污染您的HTML代碼,您還可以使用addEventListener

使用addEventListener-:

document.getElementById('button_id').addEventListener("click",function({MyFunction_outer()},false) 

OR

document.getElementById('button_id').addEventListener("click",function({MyFunction_inner()},false) 
+0

他希望將內部函數放在'onclick'中,而不是外部函數。 – Barmar