我读过的 jQuery 教程中的几乎所有示例,通常都使用一个主要的公共函数来选择插件。当我说“选择”插件时,我的意思是一个不仅仅是扩展到 jQuery 上的静态函数。
例如:
(function($) {
jQuery.fn.actionList = function(options) {
var opts = $.extend({}, $.fn.actionList.defaults, options);
return this.each(function(){
alert(this);
});
};
$.fn.actionList.defaults = {
listHtml: '<div>Set the list html</div>'
};
})(jQuery);
但不是:
jQuery.log = function(message) {
if(window.console) {
console.debug(message);
} else {
alert(message);
}
};
这对大多数事情都很好,但我想做的是能够在第一次调用返回的对象上调用第二个函数。
var actionBox = $('actionBox').actionList(options);
//Many light-cycles later
actionBox.refreshData(data);
甚至可能:
$('actionBox').actionList(options);
// laaateerr
$('actionBox').actionList.refreshData(data);
我猜这其中的一个或两个是不可能的,或者至少是不可取的,但我现在才进入 jQuery 和 javascript 的最深层次。
有人可以解释如何做到这一点,或者如果它不可能或不可取,为什么?而他们会做什么呢?
谢谢阅读!