我有一些Jquery函数,我保存在“custom.js”文件中。在某些页面上,我需要将PHP变量传递给Jquery,因此一些Jquery位需要保留在HTML文档中。但是,由于我现在正试图将事情重构到最低限度,我正在绊倒以下事项:
如果我把它放在我的custom.js中:
$(document).ready(function()
{
function sayHello() {
alert("hello");
}
}
这是在HTML文档中:
<script type="text/javascript">
$(document).ready(function()
{
sayHello();
});
</script>
...函数没有被调用。但是,如果两者都放在HTML文档中,则该函数可以正常工作。
我需要为函数声明某种公共属性,或者如何在HTML中使用Jquery函数与外部.js文件进行通信?它们被正确包含在内,否则就可以正常工作。
感谢。
答案 0 :(得分:29)
问题是你在这一行声明的匿名函数中定义了sayHello
:
$(document).ready(function()
因此,sayHello
的范围仅限于该功能。如果您希望从应用程序中的任何其他位置调用sayHello
,例如页面上的HTML或custom.js中的其他行,则需要更改custom.js并在调用{{1 }}:
$(document).ready
答案 1 :(得分:7)
只需将函数设为全局变量
sayHello=function() {
alert("hello");
}