【问题标题】:jQuery Autosize plugin error - intermediate value(...) is not a functionjQuery Autosize 插件错误 - 中间值(...)不是函数
【发布时间】:2014-04-29 16:29:37
【问题描述】:

我使用 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 控制台不显示任何错误。

有什么想法吗?

【问题讨论】:

  • 没有理由使用jQuery(function($){$(document).ready(...)})。将函数传递给jQuery 与使用ready 相同。只需执行jQuery(function($) { ... }); 而不调用ready
  • 处理多个 JS 文件时的一个好习惯是在每个文件的开头添加一个分号以终止任何前面的格式错误的逻辑。
  • 对我来说,当我在 IIFE(立即调用函数表达式)之前定义一个函数时会发生这种情况。

标签: jquery autogrow


【解决方案1】:

"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 );

但是,修复方法是在填充函数中添加一个分号:

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

防止解析器认为“var populate = ...”和(function($) ... 是单个语句,第二个从第一个扩展。

【讨论】:

  • 提示:任何奇怪的,莫名其妙的解析错误通常是错误的引号和分号的结果
  • 如果在一个不以分号结尾的对象之后声明了 IIFE,也会发生这种情况。当 'option strict' 开启时会发生这种情况。
  • 虽然我的代码与此无关,但分号修复了一切。谢谢! (返回对象的愚蠢函数,在括号中立即调用所述对象上的函数)。下一行的括号将上一行解析为函数调用
【解决方案2】:

FWIW 自动调整调用方法已更改。如果你在这里结束并使用 jQuery

以前是

$('textarea').autosize();

新的调用是

autosize($('textarea'));

【讨论】:

  • 谢谢,完全错过了!
  • 感谢关于版本差异的说明。正在尝试修复旧版本中的错误。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2017-11-13
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多