Jquery 在ajax调用后调用对象返回
我构建了以下对象:Jquery 在ajax调用后调用对象返回,jquery,Jquery,我构建了以下对象: var cls = { offset : 0, onSuccess : function(data) { alert(this.offset); } }; $(document).ready(function(){ $("form").submit(function() { $.post( "/ajax", {},
var cls = {
offset : 0,
onSuccess : function(data) {
alert(this.offset);
}
};
$(document).ready(function(){
$("form").submit(function() {
$.post(
"/ajax",
{},
cls.onSuccess
);
});
});
当ajax返回并调用cls
的onSuccess
时,我会收到未定义的警报
如果我只调用cls.onSuccess()
,则警报将返回0
ex预期值。这种行为有什么原因吗?这不再是你的目标,cls
。您正在向post调用传递函数引用,onSuccess
这
不再是您的对象,cls
。您正在向post调用传递函数引用,onSuccess
不要使用“this”。它不会引用您希望引用的内容
使用窗口警报(cls偏移量)
解释起来很长,但这应该会对你有所帮助。不要使用“this”。它不会引用您希望引用的内容
使用窗口警报(cls偏移量)
解释起来很长,但这应该会对您有所帮助。您只传递函数,与对象无关。如果将其包装在函数中,则应能正常工作:
$(document).ready(function(){
$("form").submit(function() {
$.post(
"/ajax",
{},
function(data){
cls.onSuccess(data);
}
);
});
});
您只传递函数,与对象无关。如果将其包装在函数中,则应能正常工作:
$(document).ready(function(){
$("form").submit(function() {
$.post(
"/ajax",
{},
function(data){
cls.onSuccess(data);
}
);
});
});
您需要为AJAX函数提供回调的上下文。我将使用.ajax()而不是.post(),并将cls作为上下文传递:
$.ajax({
url: "/ajax",
context: cls,
type: "POST",
success: cls.onSuccess
});
您需要为AJAX函数提供回调的上下文。我将使用.ajax()而不是.post(),并将cls作为上下文传递:
$.ajax({
url: "/ajax",
context: cls,
type: "POST",
success: cls.onSuccess
});