有人可以帮助解释为什么这不起作用。
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"
有人可以帮助我,为什么这不起作用。我如何接近这个有什么不对劲。如果有更好的方法,请告诉我。谢谢你的帮助。
答案 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的变量。