//简单的ajax表单提交(function($,window,undefined){varajaxForm=function(opts){vardef={successLabel:'发送成功',url:'/user/check',dataType:'html'}this.form=$('#'+formid)||$('form');this.opts=$.extend({},def,opts);this.formdata=this.form.serialize();}//发送前执行ajaxForm.prototype.before=function(){this.submitButton=$form.find(':submit');this.submitButton.val('提交中...');}//请求成功回执函数ajaxForm.prototype.success=function(data){$('#message')=this.opts.successLabel;}//ajaxForm.prototype.send=function(){$.ajax({url:this.opts.url,//无错before:this.before,//引用ajaxForm.before方法success:this.success,//执行到这里错误,success内部this方法出错了type:'post',data:this.formdata})}window.ajaxForm=ajaxForm;})(jQuery,window)//实例newajaxForm().send();以上执行,会提示this.opts.successLabel未定义,我知道当ajax引用this.success的时候,success内部this已经指向当前ajax对象了,请问各位老师,如何在ajax方法中,正确引用一个原型的方法呢?
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
找到方法了,谢谢关注!var_this=this;$.ajax({type:this.opts.method,url:this.opts.url,dataType:this.opts.data_type,data:postdata,success:function(){_this.success.apply(_this,arguments);},error:function(){_this.error.apply(_this,arguments);}});
添加回答
举报
0/150
提交
取消