0

我有一个用对象文字语法编写的插件,所以它基本上只是一个大对象变量。它在一个外部 JS 文件中。当我在函数中的 html 中内联初始化该函数时 jQuery(document).ready(function($){} ,出现此错误:“对象 [对象窗口] 的属性 '$' 不是函数”。

如果我将插件文件中的所有“$”更改为“jQuery”,它就可以工作。有没有办法让插件在不这样做的情况下工作?谢谢!如果您需要更多信息/代码来帮助我,请告诉我,我可以提供更多。

- 更多细节:

它是一个限制输入/文本区域字符的插件。它看起来像这样:

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();
});
4

1 回答 1

1

尝试使用以下包装插件:

;(function($){    
/* plugin code here can use "$"*/
})(jQuery);

如果插件引用,这将起作用,$.fn.pluginName否则$.pluginName可能不起作用,需要查看插件是如何构造的

于 2013-02-07T00:16:31.417 回答