我尝试通过以下方式将一些常见的应用程序特定操作移动到jQuery 插件:
$.fn.extpoint = function() {...}
但我不想声明几个扩展点:
$.fn.extpoint1 = function() {...}
$.fn.extpoint2 = function() {...}
...
相反,我想使用语法糖,例如:
$("#id").extpoint.func1().extpoint.func2()
有定义:
$.fn.extpoint = {}
$.fn.extpoint.func1 = function() {
this.val();
this.data("ip");
...
return this;
}
并致电:
$("#id").extpoint.func1(...)
this
评估时指向(带有, , ... 元素的$.fn.extpoint
字典)而不是原始 jQuery 对象。func1
func2
func1
是否可以使 jQuery 插件可扩展?
附言。可以将函数名称作为第一个参数传递给$.fn.extpoint
并实现$.fn.extpoint('extend', func)
对扩展点的调用(保存到名称和实现之间的内部字典关联)扩展点。在这种情况下,用例看起来像:
$("#id").extpoint('func1', ...).extpoint('func2', ...)
但我正在寻找制作更多语法糖的方法......