JQuery Ajax只调用预定义函数

时间:2015-10-11 05:54:09

标签: javascript jquery ajax

我有以下JQuery Ajax方法:

n <- 2
vapply(strsplit(myvec, ':'), function(x)
            paste(x[seq.int(n)], collapse=':'), character(1L))
#[1] "chr2:213403244" "chr7:55240586"  "chr7:55241607" 

如上所述,成功函数不会触发。

但是,如果我在其他地方预定义该函数,然后像这样调用它:

$.ajax({
    type: 'POST',
    url: $(form).attr('action'),
    data: formData,
    dataType: 'json',
    success: function() {
        $('#test').html("testing123");
    },
});

OR

success: testFunction()

然后它的工作原理。

我错过了什么?

1 个答案:

答案 0 :(得分:4)

您认为自己有效的解决方案实际上只是幻想。它们实际上并没有在success上调用,而是在您声明它时。这导致我认为你的ajax调用没有返回success

预定义函数并传递它的正确方法是

success: testFunction

如果你执行success: testFunction(),则在解析代码时会立即运行该函数,而不是在ajax的回调触发时运行。与

的情况相同
success: $('#test').html("testing123")

,如果您在ajax调用后立即调用testFunction(),则实际上是等效的。