我有以下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()
然后它的工作原理。
我错过了什么?
答案 0 :(得分:4)
您认为自己有效的解决方案实际上只是幻想。它们实际上并没有在success
上调用,而是在您声明它时。这导致我认为你的ajax调用没有返回success
。
预定义函数并传递它的正确方法是
success: testFunction
如果你执行success: testFunction()
,则在解析代码时会立即运行该函数,而不是在ajax的回调触发时运行。与
success: $('#test').html("testing123")
,如果您在ajax调用后立即调用testFunction()
,则实际上是等效的。