带有jQuery内部参数的函数

时间:2013-02-03 22:23:54

标签: javascript jquery html jquery-ui

有人可以帮助解释为什么这不起作用。

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
    } 
});

当我使用Firebug时,我收到以下错误:

"ReferenceError: adminDBDisplay is not defined"

有人可以帮助我,为什么这不起作用。我如何接近这个有什么不对劲。如果有更好的方法,请告诉我。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

使用function name() {...}定义函数时,如果您已经在函数内部,那么它只会在该函数中定义。

函数定义不应包含在.ready()中,因为它们在调用之前不会运行。删除.ready()包装,你应该好好去。

答案 1 :(得分: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的变量。