我写了一个像这样的jQuery插件:
jQuery(function($) {
$.fn.myPlugin = function() {
return this.each(function () {
this.publicFunction = function() {
alert('test');
};
return this;
});
};
});
我的HTML页面上的JavaScript看起来像这样:
var myPluginDiv = $("#divTest").myPlugin();
myPluginDiv.publicFunction();
我收到错误“myPluginDiv.addItem不是函数。”这显然是一项公共职能。为什么不起作用?
答案 0 :(得分:0)
您要将函数添加到DOM元素,而不是要返回的jQuery对象。 myPluginDiv
是一个jQuery对象。我认为以下任何一种都可行:
应用于返回的jQuery对象:
jQuery(function($) {
$.fn.myPlugin = function() {
this.publicFunction = function() {
alert('test');
}
return this;
};
});
var a = $('selector').myPlugin();
a.publicFunction();
或在原始问题中应用于DOM对象:
myDivPlugin.get(0).publicFunction();
或
myDivPlugin.each( function() { this.publicFunction(); } );
答案 1 :(得分:0)
知道了!我知道我以前遇到过这个问题,我根本不记得我做了什么来修复它。关键是在我的插件调用结束时使用.get(0)
,如下所示:
var myPluginDiv = $("#divTest").myPlugin().get(0);
然后我可以毫无问题地致电myPluginDiv.publicFunction()
。