几分钟前我被CodeCanyon拒绝了,我有点失望,因为我使用了CSS-Tricks的这个模板:
http://css-tricks.com/snippets/jquery/jquery-plugin-template/
我不是JS忍者,我认为这是一个可靠的模板,但这里有一些问题:
var zoomWizard = function(el, options) {
var base = this;
base.$el = $(el);
base.el = el;
};
作为上述片段的“正确”方法,我获得了“this.el = el”等,这打破了base.el的整个目的! 'base'的概念是从其他函数引用'this'对象而没有范围问题。至少据我所知。
但等等,还有更多: - 在构造函数中定义方法是不好的做法;它浪费CPU和内存资源。例如:
base.functionName = function() {
....
}
我尝试使用谷歌搜索一个坚实的jquery插件模板,该模板不建议使用上述做法,但在css-tricks中找不到任何“高调”。有什么建议?
感谢您的时间!
答案 0 :(得分:0)
我不确定这是否能回答你的问题(我希望如此)。我使用这个模板来创建jquery插件:
(function($){
$.fn.extend(
{
//plugin name here
functionName: function(options)
{
//Settings list and the default values
var defaults =
{
defaultvar1: "value",
defaultvar2: "value"
};
var options = $.extend(defaults, options);
return this.each(function()
{
var o =options;
var obj = $(this);
//do stuff here
}
});
})(jQuery);
如果有两个不同的功能,AFAIK两个名称空间就可以了。如果不是那么你就是“污染”命名空间列表,并且应该将修饰符添加为参数aka .zoom("in", 300);
和.zoom("out", 300);
而不是.zoomIn(300)
和.zoomOut(300)
。