如何将标准API功能添加到jQuery插件中
How to add standard API functionality to jQuery plugin
在我创建的jQuery插件中,要从插件外部访问其方法,我必须执行类似的操作
$("#testItem").data('pluginName').foo_public_method()
然而,我看到其他插件提供了类似的API
$('#testItem').pluginName('foo_public_method')
如何启用此类功能?
jsFiddle
您需要询问传递给插件实例的参数,并检查插件是否已经在元素上实例化。
从您的示例来看,插件实例存储在元素的data
属性中,因此检查起来应该很简单。然后,您可以使用arguments
关键字来访问已传入的任何内容。
在下面的代码中,我将this
作为插件调用的单个元素
var instance = $(this).data('pluginname');
var args = $.makeArray(arguments);
if (!instance) {
// create the plugin on the element using args as an object
}
else {
// plugin already exists
if (typeof args[0] == "string") {
// arg0 = property
// arg1 = value
}
else {
// logic for passing in arguments as an object
}
}
相关文章:
- 如何在Angular2中使用jQuery插件
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 扩展jQuery插件以更改配置
- "工具提示"jQuery插件坏了
- 不能在图像中的地图标记中使用花式框jquery插件的区域标记
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 合并TinyMCE(jQuery插件)文件
- 带有jquery插件的backbone.js视图
- 自制jQuery插件已触发,但无法工作
- 我如何才能找到哪些网站使用我的jQuery插件
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在多个元素上使用jquery插件,只需稍作修改
- HtmlBox(jquery插件)在ajax调用中不起作用
- 构造jQuery插件
- 使用filedownload jquery插件处理FilePathResult返回值