Javascript 在这段代码中,当textarea展开时,如何执行函数?

Javascript 在这段代码中,当textarea展开时,如何执行函数?,javascript,jquery,html,Javascript,Jquery,Html,我有以下扩展textarea的代码,我可以根据文本长度扩展textarea,但是,当它扩展时,我需要执行一个函数。我不知道该用哪个词来表达。比如,如果(这个文本区域扩展){alert('ok');感激 $.fn.TextAreaExpander=函数(最小高度、最大高度){ var hCheck=!($.browser.msie | |$.browser.opera); //调整文本区域的大小 函数ResizeTextarea(e){ //事件还是初始化元素? e=e.target | e;

我有以下扩展textarea的代码,我可以根据文本长度扩展textarea,但是,当它扩展时,我需要执行一个函数。我不知道该用哪个词来表达。比如,如果(这个文本区域扩展){alert('ok');感激

$.fn.TextAreaExpander=函数(最小高度、最大高度){
var hCheck=!($.browser.msie | |$.browser.opera);
//调整文本区域的大小
函数ResizeTextarea(e){
//事件还是初始化元素?
e=e.target | e;
//查找内容长度和框宽度
var vlen=e.value.length,ewidth=e.offsetWidth;
if(vlen!=e.valLength | | ewidth!=e.boxWidth){
if(hCheck&(vlenh?“自动”:“隐藏”);
e、 style.height=h+“px”;
e、 valLength=vlen;
e、 箱宽=宽度;
}
返回true;
};
//初始化
这个。每个(函数(){
//是文本区吗?
if(this.nodeName.toLowerCase()!=“textarea”)返回;
//设置高度限制
var p=this.className.match(/expand(\d+)\-*(\d+)*/i);
this.expandMin=minHeight | |(p?parseInt('0'+p[1],10):0);
this.expandMax=maxHeight | |(p?parseInt('0'+p[2],10):99999);
//初始调整大小
重新调整区域(此区域);
//零垂直填充和添加事件
如果(!this.Initialized){
this.Initialized=true;
$(this.css(“padding top”,0).css(“padding bottom”,0);
$(this).bind(“keyup”,ResizeTextarea).bind(“focus”,ResizeTextarea);
}
});
归还这个;
};
jQuery(“textarea[class*=expand9-999]”。TextAreaExpander();//初始化文本展开


好的
试试下面的内容会对你有所帮助

$(文档).ready(函数(){
var$textareas=jQuery('textarea');
//设置初始(默认)状态
$textarears.data('x',$textarears.outerWidth());
$textareas.data('y',$textareas.outerHeight());
$textareas.mouseup(函数(){
var$this=$(this);
if($this.outerWidth()!=$this.data('x')| |$this.outerwight()!=$this.data('y')){
警报(“正常”);
}
//设置新的高度/宽度
});
});
textareaResize($(“.expand9-999”);
$.fn.TextAreaExpander=函数(最小高度、最大高度){
var hCheck=!($.browser.msie | |$.browser.opera);
//调整文本区域的大小
函数ResizeTextarea(e){
//事件还是初始化元素?
e=e.target | e;
//查找内容长度和框宽度
var vlen=e.value.length,ewidth=e.offsetWidth;
if(vlen!=e.valLength | | ewidth!=e.boxWidth){
if(hCheck&(vlenh?“自动”:“隐藏”);
e、 style.height=h+“px”;
e、 valLength=vlen;
e、 箱宽=宽度;
}
返回true;
};
//初始化
这个。每个(函数(){
//是文本区吗?
if(this.nodeName.toLowerCase()!=“textarea”)返回;
//设置高度限制
var p=this.className.match(/expand(\d+)\-*(\d+)*/i);
this.expandMin=minHeight | |(p?parseInt('0'+p[1],10):0);
this.expandMax=maxHeight | |(p?parseInt('0'+p[2],10):99999);
//初始调整大小
重新调整区域(此区域);
//零垂直填充和添加事件
如果(!this.Initialized){
this.Initialized=true;
$(this.css(“padding top”,0).css(“padding bottom”,0);
$(this).bind(“keyup”,ResizeTextarea).bind(“focus”,ResizeTextarea);
}
});
归还这个;
};
jQuery(“textarea[class*=expand9-999]”。TextAreaExpander();//初始化文本展开


很好
您需要保存
高度
,并用以前保存的高度检查当前的
高度

仅供参考-您需要为
$.browser.msie
添加
jQuery Migrate
库才能工作

工作代码片段:

$.fn.TextAreaExpander=函数(最小高度、最大高度){
var hCheck=!($.browser.msie | |$.browser.opera);
高度;
//调整文本区域的大小
函数ResizeTextarea(e){
//事件还是初始化元素?
e=e.target | e;
//查找内容长度和框宽度
var vlen=e.value.length,ewidth=e.offsetWidth;
if(vlen!=e.valLength | | ewidth!=e.boxWidth){
if(hCheck&(vlenh?“自动”:“隐藏”);
e、 style.height=h+“px”;//这就是您实际调整大小的地方
if(e.style.height!==prevHeight)//仅当高度与上一个高度不同时才抛出警报
警报(“调整大小”);
e、 valLength=vlen;
e、 箱宽=宽度;
prevHeight=e.style.height;//保存高度
}
返回true;
};
//初始化
这个。每个(函数(){
//是文本区吗?
if(this.nodeName.toLowerCase()!=“textarea”)返回;
//设置高度限制
var p=this.className.match(/expand(\d+)\-*(\d+)*/i);
this.expandMin=minHeight | |(p?parseInt('0'+p[1],10):0);
this.expandMax=maxHeight | |(p?parseInt('0'+p[2],10):99999);
//初始调整大小
重新调整区域(此区域);
//零垂直填充和添加事件
如果(!this.Initialized){
this.Initialized=true;
$(this.css(“padding top”,0).css(“padding bottom”,0);
$(this).bind(“keyup”,ResizeTextarea).bind(“focus”,ResizeTextarea);
}
});
归还这个;
};
jQuery(“textarea[class*=expand9-999]”。TextAreaExpander();//初始化文本展开

好的