2010-04-29 49 views
1
$.ajax({url: path_to_file, cache: false, success: function(html_result){ 
    $("#window_" + this.id + "_cont_buffer").html(html_result);}) 

那么现在。这个函数调用是在一个类的函数中。 this.id是该类的一个属性。这会将this.id的函数值传递给匿名函数的字符串,还是会在函数实际被调用时尝试对其进行求值,因此没有任何意义。轻微混乱回拨功能

如果这是行不通的我怎么想它,你能推荐我是如何做到这一点。

回答

2

$.ajax()的特定情况下,可以使用context属性指定this。所以,马修的解决方案为您提供了在您制作从$.ajax函数调用的函数指定this

有关为success回调设置this的更多信息,您可以看到jQuery documentation

+0

哦,对了,我没有注意到他添加了'context:this'。所以这基本上迫使回调函数中的'this'是我的实例发出AJAX请求的'this'。这个聪明的东西。 – thecoshman 2010-04-29 14:00:31

1

默认this将是一个内部jQuery对象。但是,您可以通过明确指定context: this作为呼叫的一部分来覆盖该内容。然后,this将成为您从中调用它的对象。

$.ajax({url: path_to_file, context: this, cache: false, success: function(html_result){ 
    $("#window_" + this.id + "_cont_buffer").html(html_result);}) 

会做你想做的。

+0

所以是我的'是如何工作的this'正确的认识? – thecoshman 2010-04-29 13:51:50

+0

@thecoshman,如果你不使用'背景:this','this'将是一个内部的jQuery对象。 – 2010-04-29 14:00:47