J'ai un peu modifié la réponse de vol7ron, et j'ai simplement remplacé l'action "Redimensionner ici" par un simple déclencheur de l'événement "redimensionnement" normal, de sorte que vous pouvez attacher ce que vous voulez à l'événement de redimensionnement "comme d'habitude" :
$(document).ready(function(){
$('textarea').bind('mouseup mousemove',function(){
if(this.oldwidth === null){this.oldwidth = this.style.width;}
if(this.oldheight === null){this.oldheight = this.style.height;}
if(this.style.width != this.oldwidth || this.style.height != this.oldheight){
$(this).resize();
this.oldwidth = this.style.width;
this.oldheight = this.style.height;
}
});
});
J'ai ajouté l'événement mousemove pour que le redimensionnement se déclenche également lorsque vous faites glisser la souris pendant le redimensionnement, mais gardez à l'esprit qu'il se déclenche très souvent lorsque vous déplacez la souris.
dans ce cas, vous pourriez vouloir retarder un peu le déclenchement ou le traitement de l'événement de redimensionnement, par ex. remplacer ce qui précède :
$(this).resize();
avec :
if(this.resize_timeout){clearTimeout(this.resize_timeout);}
this.resize_timeout = setTimeout(function(){$(this).resize();},100);
exemple d'utilisation, faire en sorte que la deuxième zone de texte croisse et décroisse avec la première :
$('textarea').eq(0).resize(function(){
var $ta2 = $('textarea').eq(1);
$('textarea').eq(1).css('width',$ta2.css('width')).css('height',$ta2.css('height'));
});