问题
I use jQuery Autosize plugin:
http://www.jacklmoore.com/autosize/
The script itself you can see here:
http://www.jacklmoore.com/js/jquery.autosize.js
This is how I use the script:
jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}
Problem N 1
Just updated the script to the latest version and it stopped to work:
"TypeError: (intermediate value)(...) is not a function"
Javascript console reports this error on the last line of the script:
}(window.jQuery || window.$));
Problem N 2
Script doesn't work in modal windows (PrettyPhoto) and javascript console doesn't show any errors.
Any ideas?
回答1:
the "TypeError: (intermediate value)(...) is not a function"
pops up as the result of missing a semi colon on the function BEFORE the one it throws an error on. It might be as simple as:
jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}
); //<-----
or it could be the function declared before that. An example of how this is cause is in this code:
var populate = function(sw) {
myglobalswitch = sw;
window.setTimeout(repopulate, 250, sw);
}
(function( $ ) {
$.widget( "custom.combobox", {
_create: function() {
....
})( jQuery );
results in the Intermediate value is not... on the last line: })( jQuery );
However, the fix is adding a semi colon to the populate function:
var populate = function(sw) {
myglobalswitch = sw;
window.setTimeout(repopulate, 250, sw);
} ;
to prevent the parser from thinking that "var populate = ... " and (function($) ... are a single statement, the second extending from the first.
回答2:
FWIW the autosize invocation method has changed. If you end up here and are using it with jQuery
Previously it was
$('textarea').autosize();
The new invocation is
autosize($('textarea'));
回答3:
You may have declared a function, inside a function, after you needed it. This was my problem.
来源:https://stackoverflow.com/questions/23370269/jquery-autosize-plugin-error-intermediate-value-is-not-a-function