从外部js(php)文件调用函数

时间:2010-06-15 16:29:38

标签: javascript jquery

我有一个文件,我保留所有脚本,所以我的页面不会弄乱(我有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”错误,但当我把它放在外面时 - 工作完美。那么,可能是什么问题?

2 个答案:

答案 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()。