【发布时间】:2015-09-08 19:16:37
【问题描述】:
单击按钮时,将进行 ajax 调用。该按钮提供了一个与 ajax 一起传递的变量。当它是.done() 并返回数据时,我希望能够“附加”或“挂钩”任意数量的其他函数(可能在其他文件中,并且可能在此 ajax 函数之前或之后加载)以访问返回的数据和用它做点什么。从我目前收集到的信息来看,这将是一个延期/承诺的情况,但我无法在任何地方找到灵丹妙药的解决方案(希望不使用任何计时器)。
page.html:
<button data-ajax_action="url/to/action">Button</button>
common.js:
$(document).on('click','[data-ajax_action]',function(e){
var action = $(this).data('ajax_action');
$.ajax({
url: action,
dataType: 'json'
}).done(function(data){
// do default stuff with data
// somehow provide access to data var to other functions
});
e.preventDefault();
});
现在假设我在 common.js 之前加载了另一个 js 文件,该文件需要在进行 ajax 调用后“挂钩”/访问该数据。我将如何设置它(也让任意数量的其他脚本也这样做)?
【问题讨论】:
标签: jquery ajax callback hook deferred