2

我有一个插件,其中有一个公共函数($fn.myplugin.mypublicfunct)。我的意图是让 mypublicfunct 从 myplugin 之外的单独 .ajaxSuccess 调用。因此需要一个公共功能。

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

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

我试着把

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

在公共函数中,并得到未定义(或类似)选项的错误。我在谷歌搜索风暴寻找示例、解决方案等,但我仍然很疯狂。

4

1 回答 1

1

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

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

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

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

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

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

感觉有点笨拙,但它可以完成工作。

于 2012-05-31T01:04:42.150 回答