[英]Writing a better jQuery plugin
目前我有我的jQuery插件运行它的逻辑在if statments。
例如,我有:
(function($) {
$.fn.myplugin = function(action) {
if(action == "foo"){
}
if(action == "bar"){
}
if(action == "grapefruits"){
}
}
})(jQuery);
有没有更好的方法来解决这个问题?
对于事件处理程序也一样,我可以在插件中声明它们吗?
您可以在对象中存储不同的函数并使用索引器,如下所示:
(function($) {
var methods = {
foo: function(action) { ... },
bar: function(action, someParam) { ... },
grapefruits: function(action, param1, param2) { ... },
...
};
$.fn.myplugin = function(action) {
methods[action].apply(this, arguments);
}
})(jQuery);
没有理由多次检查动作,是吗? 你也可以使用其他if.I不喜欢switch
个人的语法,更喜欢这种风格。 你可以这样做
if(action == "foo"){
}
else if(action == "bar"){
}
else if(action == "grapefruits"){
}
else{
//this is the default/unspecified case
}
另一种选择是将每个作为名称存储在对象中。 例如,这在Python中也是如此。
var plugin_actions={
'foo':function(){},
'bar':function(){},
'grapefruits':function(){}
}
plugin_actions[action]();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.