尽管将上下文设置为“this”,但无法触发预期的方法。在 createNewTable 函数中的以下代码中,“this.joinTable(data.tableId);” 尽管将上下文设置为此,但无法触发。
我如何解决这个问题。请帮忙。
var homePageKeycontroller = {
currentIndex:0,
tables: new Array("newGame"),
init: function(){
this.select();
},
select : function(){
$(".box").css({
background:"#FFAB25"
});
$("#"+this.tables[this.currentIndex]).css({
background:"gray"
});
},
next : function(){
this.currentIndex++;
if(this.currentIndex > this.tables.length-1)
this.currentIndex = 0;
this.select();
},
previous : function(){
this.currentIndex--;
if(this.currentIndex <= 0)
this.currentIndex = 0;
this.select();
},
createNewTable : function(){
$.ajax({
url: "http://mywebiste.com/createAjaxTable",
type:'post',
dataType:'json',
context:this,
success:function(data){
if(data.status == JsonStatus.OK){
alert("Table ID: "+data.tableId);
this.joinTable(data.tableId); // issue here
}
}
});
},
handleUserChoice : function(){
if(this.tables[this.currentIndex] ==='newGame'){
this.createNewTable();
}
},
joinTable : function(_tId){
$.ajax({
url:"http://mywebsite.com/JoinTable",
type:'post',
dataType:'json',
data:{tableId:_tId},
context:this,
success:function(data){
if(data.status == JsonStatus.OK){
this.showTable(); //issue here
}
}
});
},
showTable : function(){
$.ajax({
url : 'http://mywebsite.com/showTable',
success:function(data){
DOM.mainCanvas.html(data);
}
});
}
}