在我创建的 jQuery 插件中,要从插件外部访问其方法,我必须执行类似的操作
$("#testItem").data('pluginName').foo_public_method()
但是,我已经看到其他插件提供了类似于以下内容的 API
$('#testItem').pluginName('foo_public_method')
如何启用此类功能?
在我创建的 jQuery 插件中,要从插件外部访问其方法,我必须执行类似的操作
$("#testItem").data('pluginName').foo_public_method()
但是,我已经看到其他插件提供了类似于以下内容的 API
$('#testItem').pluginName('foo_public_method')
如何启用此类功能?
您需要询问传递给插件实例的参数,并检查插件是否已经在元素上实例化。
从您的示例来看,插件实例存储在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
}
}