J'utilise le plugin jQuery Autosize:
http://www.jacklmoore.com/autosize/
Le script lui-même, vous pouvez voir ici:
http://www.jacklmoore.com/js/jquery.autosize.js
Voici comment j'utilise le script:
jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}
Problème N 1
Vient de mettre à jour le script avec la dernière version et cela s’est arrêté:
"TypeError: (intermediate value)(...) is not a function"
La console Javascript signale cette erreur sur la dernière ligne du script:
}(window.jQuery || window.$));
Problème N 2
Le script ne fonctionne pas dans les fenêtres modales (PrettyPhoto) et la console javascript ne montre aucune erreur.
Des idées?
la "TypeError: (intermediate value)(...) is not a function"
apparaît parce qu'il manque un point-virgule sur la fonction AVANT celle sur laquelle une erreur est générée. Cela pourrait être aussi simple que:
jQuery(function($){$(document).ready(function(){
$('textarea').autosize();
}
); //<-----
ou ce pourrait être la fonction déclarée auparavant. Un exemple de la cause est dans ce code:
var populate = function(sw) {
myglobalswitch = sw;
window.setTimeout(repopulate, 250, sw);
}
(function( $ ) {
$.widget( "custom.combobox", {
_create: function() {
....
})( jQuery );
résulte dans le la valeur intermédiaire n'est pas ... sur la dernière ligne: })( jQuery );
Cependant, le correctif ajoute un point-virgule à la fonction de remplissage:
var populate = function(sw) {
myglobalswitch = sw;
window.setTimeout(repopulate, 250, sw);
} ;
pour empêcher l’analyseur de penser que "var populate = ..." et (function ($) ... sont une seule instruction, la seconde s’étendant de la première.
FWIW la méthode d’appel de la taille automatique a changé. Si vous vous retrouvez ici et que vous l'utilisez avec jQuery
Auparavant, c'était
$('textarea').autosize();
La nouvelle invocation est
autosize($('textarea'));