2012-05-07 156 views
0

代碼:將函數作爲參數傳遞給變量 - 可能嗎?

function remove_comment(){ 
    var id = "bla"; 
    Msg().prompt("blabla" , function(){ Ajax().post("id=" + id) } , id); 
} 

Msg().prompt(txt , fn , args){ 
    $(elem).click(fn); 
} 

正如你可以看到,我需要通過這個功能來提示(),同時傳遞函數中的一個參數取決於變量id

現在,該功能通過後,我需要它(代碼住所不使用jQuery)被分配到元素的onclick事件。

首先,我會試着這樣做: $(elem).click(fn.apply(this , id));$(elem).click(fn.call(id));,但這些代碼立即執行的功能(我已經知道爲什麼,沒有必要解釋)。 然後我試圖玩這個函數,並把它作爲字符串排列,直接作爲onclick='THE_FUNCTION' html代碼傳遞給元素,但沒有成功。

回答

2

你也可以傳遞迴調參數作爲提示功能一個額外的參數,這樣的事情:

Msg().prompt(txt, fn, args[]); 

則提示功能使用內部應用

fn.apply(this, args); 

UPDATE:

試試這個:

$(elem).click({id: arg}, fn); 

所以匿名應該是這樣的:

Msg().prompt("blabla" , function(e){ Ajax().post("id=" + e.data.id) } , id); 

希望它可以幫助

+0

非常感謝。作品。 –

+0

對不起,誤解。請閱讀已編輯的帖子。 –

+0

我更新了答案,希望它有幫助 –

2

考慮使用你的函數的JS方法callapply

+0

感謝您的幫助! –

相關問題