如果你不想在$ .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范围之外的函数。