0

对不起,如果这个问题是重复的,但我无法从其他解决方案中解决我的问题。

我的主索引中包含一个单独的文件中的代码:

var getSuggestedData = {    
serviceURL: $("input[name=suggestedServices]").val(),   
dataR:"",       
doRequest:function(){
    //request data to controller
    $.ajax({
        url:this.serviceURL,
        success:function(msg){              
            this.dataR = msg;               
        }           
    })                  
}

}

当我试图以这种方式从我的索引中获取变量“dataR”时,它是未定义的!请问,有人可以帮我吗?

$().ready(function() {
getSuggestedData.doRequest();   
alert(getSuggestedData.dataR);

});

先感谢您!

4

2 回答 2

0

您无法访问 dataR 对象的原因是它与成功方法返回的结果不在同一个上下文中。

一种技术是在变量中保存对此的引用,如下所示:

var self = this;

using the jquery library!
    $(this.button).bind('click',{self:this},function(event) 
    {
        var that = event.data.self;
        alert(that.num);

    });

您还可以查看下面的帖子,其中我详细解释了“this”关键字。

http://azamsharp.com/Posts/57_I_mean__this__not__this_.aspx

于 2009-09-30T15:55:42.323 回答
0

如果没记错的话……

this.dataR = msg; 

可能需要

getSuggestedData.dataR = msg

'this' 引用将指向提供给 jQuery 的对象,您需要引用原始对象。我忘记了您是否可以直接通过它的名称访问它,或者您是否需要使用其他方法,如果它不起作用,请告诉我。

于 2009-09-30T16:05:17.787 回答