无法访问回调函数内的其他函数

时间:2013-10-22 17:53:32

标签: javascript

我在访问ajax post回调函数中的其他函数时遇到问题。

看一下这段代码:

function HelloWorld(){
    var x = 'Hello';
    return x;
}

console.log( HelloWorld() ); // this works fine.

$('#newPost').click( function(){

    $.post('url', { somedata }, function( data ){
        console.log( HelloWorld() );
        // this does not work.
        // Error: functions not defined.
    });

});

我如何才能访问其他功能?

2 个答案:

答案 0 :(得分:3)

如果HelloWorld位于jQuery.ready范围内,那么您将无法访问它,它是该范围的本地。

如果你想让HelloWorld全局化,那么你应该使用窗口或者:

window.HelloWorld = function(){
  var x = 'Hello';
  return x;
}

然后它可以在任何其他范围内访问。

答案 1 :(得分:0)

您应该有权访问此功能,是否可以记录其他内容,例如console.log('FOO');

我的第一个猜测是,你永远不会到达回调函数,这是“.post”方法的成功函数。