2013-08-29 90 views
12

爲什麼沒有任何JavaScript函數寫在document.ready中直接從jsp中的事件調用?Javascript函數裏面document.ready

如:

$(document).ready(function(){ 
    function abc() 
    { 
      //Some stuff here 
    } 
}); 

從類似:

<input id="a" type="button" onclick="abc();"> 
+0

顯示您的標記或做出小提琴 –

+5

因爲它超出了範圍。附加JavaScript_中的事件。 – elclanrs

+0

或者,將函數聲明移到'document.ready'之外。沒有理由把它放在那裏。 –

回答

20

因爲它不是在全球範圍內提供。在作爲參數傳遞給$.ready()的匿名函數中定義的任何函數僅在該函數中可用。

達到你想要做你需要的東西像什麼:

$(document).ready(function(){ 
    function abc() {} 

    $('#a').on('click',abc); 
}); 

欲瞭解更多有關職能範圍看this MDN article

+0

非常感謝Mchl ..這清除了我的懷疑。 – SpursP

+0

如何在上面的代碼中將參數傳遞給函數abc()? – SpursP

+0

@Pranav:[我如何將參數傳遞給jQuery中的事件處理程序?](http://stackoverflow.com/q/979337/218196) –