jQuery Ошибка плагина Autosize - промежуточное значение (...) не является функцией

Я использую плагин jQuery Autosize:

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

Сам скрипт вы можете посмотреть здесь:

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

Вот как я использую скрипт:

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

Задача № 1

Просто обновил скрипт до последней версии и он перестал работать:

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

Консоль Javascript сообщает об этой ошибке в последней строке скрипта:

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

Задача № 2

Скрипт не работает в модальных окнах (PrettyPhoto), а консоль javascript не показывает никаких ошибок.

Есть идеи?

3 ответа

"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($) ...) - это одно утверждение, второе продолжается от первого.

FWIW метод вызова автоматического изменения размера был изменен. Если вы оказались здесь и используете его с JQuery

Ранее это было

$('textarea').autosize();

Новый вызов

autosize($('textarea'));

Возможно, вы объявили функцию внутри функции после того, как она вам понадобилась. Это была моя проблема.

Другие вопросы по тегам