Where to define a jQuery $.ajax() success function if you don't want to define in the call to $.ajax()?
如果我想分离出我的ajax
1 2 | $(document).ready(function() { |
部分还是可以与非jQuery javascript函数一起定义?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $.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); } }); |
我不想在
例如,这会工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $.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); } |
您必须更改它,因此它只是功能名称。 像这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $.ajax( { url: '/load_prayer', cache: false, dataType: 'json', type: 'POST', data: ({ 'prayerId' : prayerId }), success: handlePrayer, error: function(e, xhr) { console.log(e); } }); |
你需要把函数放在你声明它的地方
1 2 3 4 5 | function handlePrayer(data) { $('#prayer_date').html(data.Date); console.log(data); } |
只要在调用$ .ajax之前加载了该函数,它就应该可以工作。 这意味着它可以在
有一个例外:所有需要访问的变量都需要在该成功函数之外。 下面的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var outside; function ajaxCallWorked(data) { ... } $(document).ready(function() { var inside; $.ajax({ ... success: ajaxCallWorked, ... }); } |
我相信你可以定义ajax调用和onready范围之外的函数。