对象文字语法中的插件有$的问题

时间:2013-02-07 00:07:17

标签: jquery syntax object-literal

我有一个用对象文字语法编写的插件,所以它基本上只是一个大的对象变量。它在一个外部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();
});

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容包装插件:

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

如果插件引用$.fn.pluginName$.pluginName,如果没有,则可能无效,需要查看插件的构造方式