2013-02-03 56 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的变量。