2013-02-03 70 views
-1

有人可以幫助爲什麼這不起作用。jQuery中的參數功能

HTML代碼:

<li><a href="#" onclick="adminDBDisplay(ownorg);" >OOrg</a></li> 
<li><a href="#" onclick="adminDBDisplay(twoorg);" >Twoorg</a></li> 

的jQuery:

$(document).ready(function(){ 
    function adminDBDisplay(db){ 
     alert("Got into function" +db); 
     // Planning to use jQuery Ajax here 
    } 
}); 

當我看着使用螢火蟲,我得到以下錯誤:

"ReferenceError: adminDBDisplay is not defined" 

能有人幫我這是爲什麼不加工。我如何接近這個問題出現了一些問題。請讓我知道是否有更好的方法。謝謝你的幫助。

+1

這是因爲該函數是在ready()函數中定義的。在任何調用'.ready()'之前,DOM都會解析''。這意味着該函數的名稱在DOM處理時不可用。只需移動'.ready()'外部的*函數*,你會發現它的工作原理。 – Ohgodwhy

回答

1

當用function name() {...}定義函數時,如果您已經在一個函數中,那麼它只會在該函數中定義。

功能定義不應該包含在.ready()中,因爲它們只有在被調用時纔會運行。刪除.ready()包裝,你應該很好去。

+0

哦,我明白了。我在它正在工作的功能之外使用它。如果我必須在adminDBDisplay(db)函數內部使用Jquery AJAX,該怎麼辦? – VBJ

+0

這也很好,只是使用它,它應該工作。 –

1

下面的符號:

$(function() { ... }); 

本身是結合function() {...}document.ready的功能。而運行功能adminDBDisplay(db){...}document.ready中只定義了它在運行時的功能,但實際上並沒有調用它。爲了調用它,你想adminDBDisplay('parameter');

爲了有效地實現它,你會想要將它放在網頁的正文中,如下所示:

<head> 
<script src="yourversionofjquery.js"></script> 
<script> 
//Defining your function for calling later 
function adminDBDisplay(db) 
{ 
    alert("Got into function" +db); 
    //Planning to use Jquery Ajax here 
} 
</script> 
</head> 
<body> 
<script> 
//Binding an anonymous function to document.ready 
$(function() { 
     //Do whatever you want after document.ready 
    }); 
</script> 
<div> rest of body</div> 
</body> 

讓我知道,如果是有道理的/修復你的錯誤。編輯:另外,在'ownorg'周圍放置'單引號',比如「adminDBDisplay('ownorg');」否則它正在尋找一個名爲ownorg的變量。