我有一个用对象文字语法编写的插件,所以它基本上只是一个大的对象变量。它在一个外部JS文件中。当我在我的html中内联初始化该函数时
jQuery(document).ready(function($){}
函数,我收到此错误:“对象[对象窗口]的属性'$'不是函数”。
如果我将插件文件中的所有“$”更改为“jQuery”,则可以正常工作。有没有办法让插件工作而不这样做呢?谢谢!如果您需要更多信息/代码来帮助我,请告诉我,我可以提供更多信息。
- 更多详情:
它是一个限制输入/ textarea字符的插件。它看起来像这样:
var charLimiter = {
//config stuff here...
'init' : function(options) {
if (options && typeof(options) == 'object') {
$.extend(charLimiter.config, options);
}
$('.'+charLimiter.config.inputClass).each(function() {
var $this = $(this);
charLimiter.appendHTML($this);
charLimiter.calcChars($this);
});
},
'someFunction' : function(){},
//..more stuff here...
};
当我在HTML中调用时,它看起来像:
jQuery(document).ready(function($){
charLimiter.init();
});
答案 0 :(得分:1)
尝试使用以下内容包装插件:
;(function($){
/* plugin code here can use "$"*/
})(jQuery);
如果插件引用$.fn.pluginName
或$.pluginName
,如果没有,则可能无效,需要查看插件的构造方式