我正在尝试编写 jQuery 的扩展,您可以通过字符串传递方法,并将这些方法应用于指定的元素。但是,我无法理解以这种方式调用方法如何确定调用方法时最初设置的选项。
考虑一下(以 jQuery UI 为例):
$('#foo').datepicker({ someoption: true });
$('#foo').datepicker('setDate','10/10/2013');
第二个电话怎么知道someoption
设置了什么?
例如,如果someoption
是,dateFormat
那么日期选择器将自动更改提供的日期格式以匹配formatDate
...中指定的格式第二个调用如何知道的值formatDate
是什么?
我可以看到这是如何实现的唯一方法是这样(显然缺少一些细节):
var datepickers = new Array();
$.fn.datepicker = datepicker;
function datepicker(options){
// Get the selector somehow
var selector = somefunction($(this));
// Save the options to the datepickers array
// for the given selector
datepickers[selector] = options;
}
这是实现这一目标的正确方法吗?如果是这样,如何获得选择器,它是否可靠(这部分的潜在解决方案)?