web-dev-qa-db-ja.com

jQuery Autosizeプラグインエラー-中間値(...)は関数ではありません

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コンソールにエラーが表示されません。

何か案は?

44
user

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

パーサーが「var populate = ...」および(function($)...が単一のステートメントであり、2番目が最初のステートメントから拡張していると考えるのを防ぐため。

147
ppostma1

FWIW autosize呼び出しメソッドが変更されました。ここで終わり、jQueryで使用している場合

以前は

$('textarea').autosize();

新しい呼び出しは

autosize($('textarea'));
7
engineerDave