这是一个很好的方式来建立一个插件
Is this way a good one to build a plugin?
我只是想知道以下方法是否是构建jQuery插件的好方法,如果不是,哪些是最佳实践:
$.fn.loginsys = function(options) {
var opts = $.extend({}, $.fn.loginsys.defaults, options);
return this.each(function() {
/* Code To Be Executed */
});
}
$.fn.loginsys.defaults = {
/* Some Options */
}
(function( $ ) {
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};
})( jQuery );
更多信息请点击此处:http://docs.jquery.com/Plugins/Authoring
抛开最佳实践和一切不谈,是否有理由公开默认值?
如果你想让它们从外部进行编辑,你可能需要公开一个setter,并将它们保存在$.fn.loginsys=函数闭包中,以确保它们不会被篡改,从而阻止你的插件工作。
例如,请参阅jQuery的ajaxSettings()。
我想你只是缺少包装
(function($) {
// plugin code here
})(jQuery);
但是,有很多插件模式;这里有一堆可供下载的模板。
我将从jquery教程插件中建议(但有几种方法):
(function($)
{
var globalSettings=
{
width:400,
height:400
};
var methods =
{
init : function(options)
{
return this.each(function()
{
var $this=$(this);
var settings=$.extend({}, globalSettings, options);
//your code
});
},
destroy : function()
{
return this.each(function()
{
});
},
option : function(option, value)
{
if(value!=null && value!=undefined)
{
return this.each(function(){
var $this=$(this);
var curr_setts=$this.data('settings');
curr_setts[option]=value;
$this.data('settings',curr_setts);
});
}
else
{
var $this=$(this);
var curr_setts=$this.data('settings');
return curr_setts[option];
}
}
};
$.fn.siter=function(method, options)
{
if(methods[method])
{
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
}
else if(typeof method === 'object' || !method)
{
return methods.init.apply(this, arguments);
}
else
{
$.error('Method ' + method + ' does not exist on jQuery');
}
};
})(jQuery);
关于如何编写jQuery插件,有一些很好的教程,比如http://coding.smashingmagazine.com/2011/10/11/essential-jquery-plugin-patterns/.只要谷歌一下。另外,看看其他jQuery插件是如何构建的。我认为这是你能学到最多的地方。
相关文章:
- 实现一个建立在google.com之上的自定义搜索引擎
- 如何建立一个网页,检查我的路由器网络接口是否可以访问
- 在AngularJS建立一个工厂而不是Singleton
- 我无法建立离子机器人项目..它给了我一个错误:生成cmd enont
- jQuery mobile:在页面导航期间,当建立服务器连接时,下一个页面的样式将应用于当前页面
- 我可以在不使用Javascript的情况下建立一个坚实的网站吗
- 在 2 台计算机之间建立连接,中间有一个网站
- Firebase-javascript API 仅在一个触发器中获取满足条件的数据节点.还会为每个查询建立新的 TCP
- 如何点击功能为一个自动建立的li列表
- 如何建立一个朋友和喜欢的对象
- 试图建立一个链接“;活动的”;当单击另一个链接时
- I'我正在尝试建立一个基本的网站来显示MySQL中的数据.有没有办法只使用javascript和HTML来实现这
- 我如何才能建立一个数字计数器,以scretchs到无限的数字
- 如何使第一个单选按钮在默认情况下选择一个列表中建立的for in循环使用trick
- 当我建立一个网站以正确地出现在智能手机上时,我应该记住哪些要点
- 这是一个很好的方式来建立一个插件
- 为多个客户建立一个互动网站
- 建立一个双语内容的网站
- 如何建立一个没有单独感谢页面的联系形式的谷歌分析目标跟踪
- 我可以暂时关闭所有的CSS3过渡/动画,而一个元素是建立