我有一个文件,我保留所有脚本,所以我的页面不会弄乱(我有php文件生成所需的JavaScript)。 我的包含基本上是这样的:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="script.php"></script>
</head>
<body>
<input type="button" onClick="return blah();" />
</body>
</html>
的script.php
<?php
header("content-type: application/x-javascript");
?>
function blah()
{
alert("blah");
}
$(document).ready(function()
{});
在script.php中有jquery包装器$(document).ready,我保存所有jquery相关的东西。有趣的是,当我把函数blah()放在这个包装器中时,我得到“blah is not defined”错误,但当我把它放在外面时 - 工作完美。那么,可能是什么问题?
答案 0 :(得分:1)
当然这是一个简单的范围问题?
$(function(){
window.blah = function() {
};
});
答案 1 :(得分:0)
如果你这样做:
function(){
var foo = function(){
}
// Other stuff
}
...您正在定义一个仅存在于外部函数内的私有函数。如果你想要它是全局的,你必须在外面定义它:
var foo = function(){
}
jQuery.ready(
function(){
// Other stuff
}
);
...或将其附加到全局对象,例如window:
jQuery.ready(
function(){
window.foo = function(){
}
// Other stuff
}
);
值得注意的是,使用外部文件不会改变这一点。
blah()不定义。您的函数名为checkField()。