jQuery Autosize插件错误 - 中间值(...)不是函数

时间:2014-04-29 16:29:37

标签: jquery autogrow

我使用jQuery Autosize插件:

http://www.jacklmoore.com/autosize/

您可以在此处看到脚本本身:

http://www.jacklmoore.com/js/jquery.autosize.js

这就是我使用脚本的方式:

jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}

问题N 1

刚刚将脚本更新到最新版本并停止工作:

"TypeError: (intermediate value)(...) is not a function"

Javascript控制台在脚本的最后一行报告此错误:

}(window.jQuery || window.$)); 

问题N 2

脚本在模态窗口(PrettyPhoto)中不起作用,并且javascript控制台不显示任何错误。

有什么想法吗?

3 个答案:

答案 0 :(得分:147)

"TypeError: (intermediate value)(...) is not a function" 弹出由于在函数抛出错误之前缺少半冒号的结果。它可能很简单:

jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}  
); //<-----

或者它可能是之前声明的函数。 这个原因的一个例子是这段代码:

var populate = function(sw) {
  myglobalswitch = sw;
  window.setTimeout(repopulate, 250, sw);
}

(function( $ ) {
$.widget( "custom.combobox", {
_create: function() {
....
})( jQuery );

导致最后一行中间值不是...... })( jQuery );

但是,修复程序是在populate函数中添加一个半冒号:

var populate = function(sw) {
  myglobalswitch = sw;
  window.setTimeout(repopulate, 250, sw);
}  ;

防止解析器认为&#34; var populate = ...&#34;和(function($)...是单个语句,第二个是从第一个语句延伸。

答案 1 :(得分:6)

FWIW自动调整大小调用方法已更改。如果你最终在这里并使用它与jQuery

以前是

$('textarea').autosize();

新调用是

autosize($('textarea'));

答案 2 :(得分:-1)

您可能在需要之后在函数内声明了一个函数。这是我的问题。