Min*_*ure 8 javascript jquery events plugins
目前我有我的jQuery插件运行它的逻辑在if statments.
例如,我有:
(function($) {
$.fn.myplugin = function(action) {
if(action == "foo"){
}
if(action == "bar"){
}
if(action == "grapefruits"){
}
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这个问题?
对于事件处理程序也一样,我可以在插件中声明它们吗?
您可以在对象中存储不同的函数并使用索引器,如下所示:
(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);
Run Code Online (Sandbox Code Playgroud)