目前我的 jQuery 插件在 if 语句中运行它的逻辑。
例如我有:
(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);
关于javascript - 编写更好的 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352077/