如何在公共函数中访问插件的用户定义选项?

时间:2012-05-30 23:40:23

标签: jquery jquery-plugins

我有一个插件,在其中我有一个公共功能($ fn.myplugin.mypublicfunct)。我的目的是让mypublicfunct从myplugin之外的单独的.ajaxSuccess调用。因此想要一个公共职能。

场景:myplugin做它的事情...通过Ajax表单提交是不同的插件...当该插件执行其.ajaxSuccess时我想调用mypublicfunct但是能够使用myplugin的用户选项/默认值。

这有意义吗?我是否以正确的方式提出正确的问题?

我尝试了

var opts = $ .extend({},$ .fn.myplug.defaults,options);

在公共函数中

并且未定义(或类似)的选项出错。我正在谷歌搜索风暴寻找一个例子,解决方案等等,我仍然得到了坚果。

1 个答案:

答案 0 :(得分:1)

我首先要说的是,我是jQuery插件开发的相对新手。此外,这是我自己一直在努力的事情,所以对于一个好问题我来说是+1。

我倾向于将我的选项对象存储在所选元素的数据属性上(使用插件名称间隔名称):

var data = {
    options: options,
    otherData: otherData
};

$(this).data('myPlugin', data);   

然后可以在公共函数中访问该对象,如下所示:

var options = $(this).data('myPlugin').options;    

感觉有点笨拙,但它完成了这项工作。