Javascript 如何仅在使用jquery扩展的textarea上调用ajax?

Javascript 如何仅在使用jquery扩展的textarea上调用ajax?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,扩展textarea或在textarea扩展时调用ajax都没有问题。然而,当我有三个textarea时,每当我扩展textarea时,这三个都将调用ajax。我想打电话给任何一个扩展了的textarea。我不知道该怎么做。我试过$(this.nexist('textarea').attr('id'),它不起作用。帮忙,谢谢 $.fn.TextAreaExpander=函数(最小高度、最大高度){ var hCheck=!($.browser.msie | |$.browser.opera);

扩展textarea或在textarea扩展时调用ajax都没有问题。然而,当我有三个textarea时,每当我扩展textarea时,这三个都将调用ajax。我想打电话给任何一个扩展了的textarea。我不知道该怎么做。我试过$(this.nexist('textarea').attr('id'),它不起作用。帮忙,谢谢

$.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)//仅当高度与前一高度不同时才抛出警报
load_expand_text();//展开时将调用的函数
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);
}
});
归还这个;
};
函数加载\展开\文本(){
变量数据={
操作:“加载\展开\文本”,
当前负载:'499',
userVoteNonce:UserAjaxVote.userVoteNonce,
};
$.ajax({
url:UserAjaxVote.ajaxurl,
类型:'POST',
cache:false,
数据:数据,
beforeSend:function(){
},
成功:功能(数据){
$('.expand9-999').html(数据);
}
});//ajax
};//函数加载\扩展\文本

问题在于,您的3个textarea对象具有相同的类,当您使用类选择器时,您将ajax调用的结果放入所有textarea中,如下所示:

$('.expand9-999').html(data);
您可以将textarea的id传递给load\u expand\u text函数,然后仅为正确的textarea对象设置html

您还可以尝试使用jQuery UI的可调整大小插件,并将代码放入函数中,如下所示:

$("textarea").resizable({
resize: function() {
    // your code and ajax call here, or something like this:
   load_expand_text($(this))
}});
以及“加载\展开\文本”功能:

function load_expand_text(objtextarea){
... ajax call
success: function(data){
        $(objtextarea).html(data);

        }
希望能有帮助