如果你不想在$ .ajax()的调用中定义jQuery $ .ajax()成功函数,在哪里定义?

如果我想分离出我的ajax success函数,以便它在我的其他位置定义,它是否必须在

 $(document).ready(function() { 

部分还是可以与非jQuery javascript函数一起定义?

  $.ajax( { url: '/load_prayer', cache: false, dataType: 'json', type: 'POST', data: ({ 'prayerId' : prayerId }), success: function(data) { $('#prayer_date').html(data.Date); console.log(data); }, error: function(e, xhr) { console.log(e); } }); 

我不想在调用ajax定义它的原因是它最终将是一个大函数,如果它与其他ajax调用参数混合在一起会令人困惑。

例如,这会工作:

 $.ajax( { url: '/load_prayer', cache: false, dataType: 'json', type: 'POST', data: ({ 'prayerId' : prayerId }), success: handlePrayer(data), error: function(e, xhr) { console.log(e); } }); handlePrayer(data) { $('#prayer_date').html(data.Date); console.log(data); } 

您必须更改它,因此它只是function名称。 像这样:

 $.ajax( { url: '/load_prayer', cache: false, dataType: 'json', type: 'POST', data: ({ 'prayerId' : prayerId }), success: handlePrayer, error: function(e, xhr) { console.log(e); } }); 

你需要把函数放在你声明它的地方

 function handlePrayer(data) { $('#prayer_date').html(data.Date); console.log(data); } 

只要在调用$ .ajax之前加载了该函数,它就应该可以工作。 这意味着它可以$(document).ready(...)

有一个例外 :所有需要访问的变量都需要在该成功函数之外。 下面的ajaxCallWorked()函数可以访问outside但不能访问inside

 var outside; function ajaxCallWorked(data) { ... } $(document).ready(function() { var inside; $.ajax({ ... success: ajaxCallWorked, ... }); } 

我相信你可以定义ajax调用和onready范围之外的函数。