-1

我有一个简单的问题:你能在 a 的回调中初始化一个函数$.get()吗?

例如,这不会提醒“get”:

function outside() {
    alert('get');
}
$.get('foo.txt', function(data) {
    outside();
});

http://jsfiddle.net/d69vz/3/

但是,$.ajax按预期使用警报“ajax”:

function outside() {
    alert('ajax');
}
$.ajax({
    url: 'foo.txt',
    type: 'GET',
    success: function(data) {
        outside();
    }
});

http://jsfiddle.net/v8zqZ/

我意识到这$.get()只是$.ajax()被剥夺了,但我怎么知道我是否可以在回调中使用外部函数?

编辑:关闭这个,这是一个个人错误。

我调用的文件有一个header('Content-type: application/xml');,所以 jQuery 设置的“智能”数据类型是“xml”,而它应该设置为“html”。当您使用时,我的代码适用$.get()

function outside() {
    alert('get');
}
$.get('foo.txt', function(data) {
    outside();
},
"html"
);
4

1 回答 1

1

是的你可以。您的 jsfiddle 失败,因为对 'foo.txt' 的请求返回错误。这是一个工作 jsfiddle 的示例:http: //jsfiddle.net/pXSmj/

var speak = function() { alert('hi'); }

$(document).ready(function() {
    $.get('../img/logo.png', function(data) {
        speak();
    });
});​

这是您的 jsfiddle 的更新,outside被称为 foo.txt 请求失败:http: //jsfiddle.net/d69vz/1/

于 2012-12-07T06:56:05.310 回答