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'));
Возможно, вы объявили функцию внутри функции после того, как она вам понадобилась. Это была моя проблема.