作者uruz7 (uruz7)
看板Ajax
標題Re: [問題] 使用class
時間Thu Jun 26 19:40:03 2008
var IDclass=Class.create();
IDclass.prototype={
initialize:function(ID){
this.ID=ID;
...
...
},
getAlbum:function(){
var url = "
http://www.wretch.cc/album/"+this.ID;
var qstr="";
//this.test();
var ajax=new Ajax.Request(url,
{
method: 'get',
parameters: qstr,
onSuccess: function(reqObj)
{
alert('ALBUM success');
tempResponse=reqObj.responseText;
var hideNode=document.getElementById("tempHtml");
hideNode.innerHTML=tempResponse;
this.test();
getPhotoUrl();
},
onFailure: function(reqObj)
{
alert('fail');
addAlbum("XXX","XXX");
}
});
},
test:function(){
alert("213");
},
};
就是this.test();沒辦法執行
直接寫test();也不行
但是如果我沒有放在Ajax.Request裡面可以用this.test()呼叫到
也就是例如在黃色字的地方
我想問是不是因為我在那當下是在另一個物件裡面所以用this會沒辦法看到
如果這個假設是成立的不知道我要怎麼呼叫到IDclass裡面的test:function()
如果其實並不是這麼一回事的話
那我該怎辦~~~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.235.115
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:41)
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:42)
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:42)
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:43)
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:45)
※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:46)
1F:推 fillano:你怎麼用IDClass的?var a=new IDClass()嗎? 06/26 19:58
2F:→ uruz7:恩恩 是 06/26 20:30
3F:→ chph:this 指向的是不同物件, 可在黃字處先用另一變數存放 06/26 21:49
4F:→ chph:藍色字改呼叫另一變數的test(), 試試 06/26 21:50
5F:→ uruz7:最後是放棄了原本的方式,寫在Ajax.Request()中好像真的不行 06/27 13:01
6F:→ uruz7:最後是改寫成原本的xmlHttpRequest就沒這個問題了 06/27 13:02
7F:推 TonyQ:是你不會用... chph的推文是正解 06/27 14:15
8F:→ TonyQ:this這個關鍵字可以列為js最常混淆的變數之一了 06/27 14:15
9F:→ uruz7:被你說對了~~我真的不會用 所以才會土法煉鋼 06/27 19:10
10F:→ uruz7:不知道能不能夠回一篇完整的說明 雖然我暫時解決了燃眉之急 06/27 19:10
11F:→ uruz7:但是如果能多學一點總是好的 06/27 19:11
12F:→ TonyQ:主要是要自己生一個example有點累...總之每次產生物件都是 06/27 20:44
13F:→ TonyQ:一個新的實體, 你new Ajax() 它就是一個自己的實體 06/27 20:45
14F:→ TonyQ:你this指到的其實是他 而不是IDClass本尊.. 06/27 20:45
15F:→ TonyQ:chph講的應該算是一個值得嘗試的解決方案了...~_~ 06/27 20:47
16F:→ uruz7:恩恩 好像有點董了 先試試 感謝TonyQ!!!!! 06/28 19:24
17F:→ uruz7:阿 還有chph 06/28 19:25