我最近阅读了一篇关于让您的代码尽可能少地依赖 DOM 的博客文章(即尽可能远离 $(document).ready() 函数)。我已经成功地通过创建这样的视图模块来做到这一点:
var View = function (e) {
this.element = e;
};
View.prototype = {
show: function () {
this.element.fadeIn();
},
//More manipulation functions
};
$(document).ready(function () {
var myView = new View($('#element'));
myView.show();
});
我似乎找不到将 AJAX 调用包装到对象中的方法,因此它们不依赖于正在加载的 DOM,因此每次进行 AJAX 调用时我都不必编写类似的内容:
$.ajax({
url: "signout.php",
type: "POST",
dataType: "json",
error: function (jqXHR, textStatus, errorThrown) {
alert('An error occured while trying to log out.');
},
success: function (data, textStatus, jqXHR) {
settingsWidget.getAction('#settings').triggerAction(500, function () {
WIDGETS.setOnTop('#login', SideEnum.RIGHT);
});
},
complete: function (jqXHR, textStatus) {}
});
有没有一种设计模式可以用来实现我想要做的事情?此外,最好将 jQuery DOM 对象传递给 View 对象,还是仅将选择器传递给 View 对象中的 DOM 对象?