2013-10-28 79 views
1

有一件事我真的不喜欢jQuery是它的链接。我发现的所有样本都使用这个。那么有没有办法定义ajaxSuccess不使用链接?我已经尝试过,但它不起作用。jQuery ajaxSuccess()事件处理程序

jQuery.ajax({ 
    dataType: "json", 
    url: this.DIRECTORY_PHP, 
    data: data, 
    success: this.handleSuccessEvent 
}); 
+1

这应该工作得很好。它以什么方式不起作用?我怀疑你正在失去'this'这个上下文,并且假设这是因为ajax请求。 –

+0

你的意思是像一个普通的成功处理程序(全局),或者像上面那样将成功函数传递给AJAX调用? – tymeJV

+0

谢谢大家,我认为问题不在于事件处理程序。我只是添加“错误”处理程序,它的工作原理。对不起,提出一个问题没有太多检查:) –

回答

3

的一般注意事项:

$.ajax({ ... }).done(function1).done(function2) 
// can be split into : 
var ajaxReq = $.ajax({ ... }); 
ajaxReq.done(function1); 
ajaxReq.done(function2); 
2

如果只有handleSuccessEvent必须在上下文(this)一个意思,你的例子会工作:“链接”总是可以在disctinct呼叫的连续破。将它替换为现有的和声明的函数名称,并且(as in documentation)它将起作用。

var myFunction = function(data){ /* TODO */ }; 
jQuery.ajax({ 
    dataType: "json", 
    url: this.DIRECTORY_PHP, 
    data: data, 
    success: myFunction 
}); 

将一个匿名函数赋值给一个变量是完全可选的,并且是为了展示该语法的灵活性而编写的。随意按照这种方法:

function myFunction(data){ 
/* TODO */ 
} 

jQuery.ajax({ 
    dataType: "json", 
    url: this.DIRECTORY_PHP, 
    data: data, 
    success: myFunction 
});