如何访问功能

时间:2011-05-02 14:23:49

标签: javascript jquery ajax function

我有这样的JavaScript代码:

<script>
function Foo() { alert('Foo'); }

$.post('file.php', {}, function(data) {
   $('#elem').append(data);
});
</script>

<div id="elem"></div>

示例数据

<script>Foo()</script>

当然,那里Foo()无法进入。我怎么能抓住它呢?

5 个答案:

答案 0 :(得分:3)

确保

  1. jQuery已加载
  2. 当从ajax调用返回时,定义
  3. #elem。 (尝试将其放在脚本之前,以确保
  4. 确保未在jquery foo的文档就绪方法中定义函数$(function(){ //FOO should not be defined in here.. });
  5. 示例http://jsfiddle.net/k7Y55/2/

答案 1 :(得分:0)

foo如果在您调用之前已定义,则应该可以访问。

此外,您应该使用分号;

终止函数调用
<script>
  function Foo() { 
    alert('Foo'); 
  }
</script>

...

<script>
  Foo();
</script>

答案 2 :(得分:0)

尝试:

$.ajax({
  url: "test.html",
  dataType: "script",
  success: function(data){
    $('#elem').append(data);
  }
});

希望这有帮助。

答案 3 :(得分:0)

如果您append("<script>Foo()</script>")/会破坏字符串。 只需添加\字符,如下所示:append("<script>Foo()<\/script>")

是的,我知道这个字符串在你的情况下是一个ajax返回。 所以,只需从服务器端返回"<script>Foo()<\/script>"

看看这个小提琴:http://jsfiddle.net/ErickPetru/qps2q/

答案 4 :(得分:-2)

简单的回答。你需要像这样设置一个变量:var foo = function(){}

<script type="text/javascript">
var foo = function(data){
    alert(data);
}

$.post({
    url: 'someurl.aspx',
    success: function(data){
        foo(data);
    }
});
</script>