2012-03-10 236 views
-2

這裏是我的代碼如何在window.onload中聲明的onclick中使用函數?

<html> 
    <head> 
    <script type="text/javascript"> 
    window.onload = function(){ 
     function b(){c();} 
    } 
    function c(){alert('');} 
    </script> 
    </head> 
    <body> 
    <input type="button" onclick="b()"> 
    </body> 
</html> 

Q1:我想在按鈕的單擊事件訪問函數b()在body標籤。
Q2:我想從window.onload的函數b()中訪問函數c()。

+0

Q1不是這樣的;如果你可以運行'b',Q2應該沒問題。 – pimvdb 2012-03-10 20:26:08

+0

這沒有任何意義。爲什麼不只在按鈕點擊時執行'c()'?在任何情況下,你都沒有一個簡單的方法來獲取'b()',因爲它處於匿名函數的作用範圍內,這就是'unload'處理程序。我認爲你最好試着解釋你想要的行爲,而不是你試圖解決的問題。例如,「我怎樣才能在加載時運行相同的代碼,以及何時單擊按鈕?」如果那是你想要做的。 – tvanfosson 2012-03-10 20:26:39

+0

你能解釋一下匿名函數的定義和卸載處理程序的意思嗎? – user794624 2012-03-10 20:34:46

回答

0

Q1:我想訪問body標籤中按鈕點擊事件的函數b()。

這很好,你只需要能夠訪問它。 onclick="b()"onclick="window.b()"相同,所以顯然不會按照這種方式工作。您可以將window.b評估爲正確的函數,或者從代碼編程地建立事件。 Q2:我想從window.onload中的函數b()訪問函數c()。

這很好,它已經以這種方式工作。

相關問題