我正在开发我的第一个 jQuery UI 小部件。它使用 $.ajax 来提取数据,然后在加载数据后填充元素。通常我会有一个执行 ajax pull 的函数,并将“onSuccess”回调函数传递给该函数,以便在 ajax pull 成功时执行。
这是我的意思的一个非常简化的版本:
function doAjax(onSuccess) {
$.ajax({
success: function (data) {
onSuccess(data);
}
});
}
doAjax(function (data) {console.log(data);});
使用小部件工厂,我知道我可以在 $.ajax 的成功函数中添加触发器。我可以在我的小部件代码中使用该触发器吗?
像这样的东西有效,但似乎不是最佳实践:
_create: function() {
self.options.dataLoaded = function (e, data) {console.log(data);};
this._doAjax();
},
_doAjax: function() {
var self = this;
$.ajax({
success: function (data) {
self._trigger('dataLoaded', null, data);
}
});
}
什么被认为是这里的最佳实践?