2014-02-05 154 views
0

JavaScript新手在這裏....我需要調用傳遞兩個變量的JavaScript函數。然後我需要通過onClick事件將這兩個變量傳遞給另一個函數。這裏的總體思路是:通過Onclick將Javascript變量傳遞給另一個函數

function FirstFunction(var1, var2) { 
    // Using console.log to verify passed variables 
    console.log(uid); 
    console.log(accessToken); 
    $('#dialog-message').html('<div><button onclick="SecondFunction(var1, var2)">Submit</button></div>'); 
}; 

function SecondFunction(var1, var2) { 
    // Using console.log to verify passed variables 
    console.log(uid); 
    console.log(accessToken); 
}; 

我無法看到SecondFunction VAR1 & VAR2()。這裏有什麼問題?

+3

內聯單擊事件處理程序將在* global scope *中計算,而不在函數範圍內。它看起來像你正在使用jQuery,所以用它來創建DOM元素並綁定事件處理程序。 http://learn.jquery.com/using-jquery-core/manipulating-elements/,http://learn.jquery.com/events/event-basics/ –

+0

謝謝@FelixKling。我不熟悉jQuery,所以我不確定如何按照你的建議 - 我通過將var1&var2聲明爲全局變量解決了部分問題,至少現在我可以在SecondFunction調用中看到它們。這是Facebook JavaScript SDK問題的一部分 - 如果您認爲自己可以提供幫助,我會在單獨的問題中發佈這些問題。 (http://stackoverflow.com/questions/21608444/fb-api-doesnt-completly-execute-when-called-from-another-function-call) - 再次感謝。 – Tom

+0

這就是爲什麼我添加的鏈接;)但無論如何,我添加了一個答案,我希望它可以幫助! –

回答

1

我原來的評論:

內聯單擊事件處理程序將在全球範圍內進行評估,而不是函數範圍內。它看起來像你使用jQuery,所以使用它到create the DOM elementsbind the event handler

這樣,就可以避免整個問題(而不必使用全局變量):

function FirstFunction(var1, var2) { 
    var $button = $('<button />', { 
     click: function() { 
      SecondFunction(var1, var2); 
     }, 
     text: 'Submit' 
    }); 

    $('<div />').append($button).appendTo('#dialog-message'); 
} 

因爲現在事件處理程序與訪問的閉包var1var2

+0

再次感謝@FelixKling !!這是我需要給我一個跳躍的開始。我確實使用了您提供的鏈接,但沒有相關示例,這對我來說幾乎是希臘文。 jQuery對我來說是新語言,但你的回答非常有幫助。現在,如果我可以使用該函數的其他問題工作,現在它得到的變量我將全部設置! – Tom

0

試試這個

$('#dialog-message').html('<div><button onclick="SecondFunction('+ var1 + ','+ var2+ ')">Submit</button></div>'); 
+0

爲什麼OP應該這樣做? **解釋**你的答案,不要忘記提及,只有當'var1'和'var2'是數字,布爾值或正則表達式時纔會起作用。 –

0

嘗試

$('#dialog-message').html('<div><button onclick="SecondFunction(' + var1 +', ' + var2 + ')>Submit</button></div>'); 
+2

OP爲什麼要這樣做? **解釋**你的答案,不要忘記提及,只有當'var1'和'var2'是數字,布爾值或正則表達式時纔有效。 –

相關問題