我有一个插件,可以将选定的值从下拉菜单转换为连接字符串,以便在文本字段中使用。
插件的调用如下:
info = $('select');
info.my_plugin({ /* plugin options */ });
我想要做的是在该元素上添加一个访问器方法(最好是jQuery集合),以便稍后我可以调用(在上面的代码之后):
info.get_values();
将调用私有方法(在插件中定义)来返回jQuery元素的当前设置值。
如何修改插件才能执行此操作?我的插件目前使用此模式设置:
$.fn.my_plugin = function(options) {};
答案 0 :(得分:2)
我建议使用jQuery的.data
。像
$.fn.myPlugin = function (options) {
var handler = {};
this.data('myPlugin', handler);
handler.options = options;
handler.getValues = function () {
// return some values
};
return this;
};
这样,您的插件公开的API保持隔离和清洁。
然后您的用户可以
$('select').myPlugin();
// later somewhere else
$('select').data('myPlugin').getValues();
注意:很久以前我从jQuery工具中接受了这个想法。不知道他们是否还在这样做。
答案 1 :(得分:0)
您必须使用另一个函数扩展$ .fn对象,如下所示:
$.fn.my_plugin = function(options) {
// ...your plugin code, setting the var "concatenatedDropDownString"
$.fn.get_values = function(){
return concatenatedDropDownString;
};
return concatenatedDropDownString;
};