2010-06-17 65 views
2

再次感謝您的期待。jquery調用函數

我喜歡調用一個函數(例如comment_disp,post_disp或任何其他我以後創建的)。

我已經創建了一個帶有url,fname和id的json函數,我可以使用fname作爲函數名嗎?

// on document ready runs 
json('comments.php','comment_disp'); 
  • URL =網址獲得
  • FNAME =功能
  • 名ID =郵寄或任何其它數據ID。
json = function(url,fname,id){ 
$.getJSON(url,(fname)); 
} 

comment_disp = function(json){ 
} 

回答

2

函數是JavaScript的第一類對象。您可以直接將它們放入參數中,不需要將其名稱作爲字符串傳輸。

所以不是

json = function(url,fname,id){ $.getJSON(url,(fname)); } 

json = function(url,f,id){ $.getJSON(url, f); } 

,並把它作爲

json('comments.php', comment_disp); 
+1

相當於沒有什麼錯誤使用'(FNAME)'。 – Gumbo 2010-06-17 12:25:59

+0

非常感謝你。 – jay 2010-06-17 12:26:10

+0

@Gumbo:我想明確表示函數*本身*,而不是它的*名稱*應該被傳輸。參數名稱當然沒有區別,它可以(儘管邏輯錯誤)保存爲'fname'。 – Tomalak 2010-06-17 13:08:10

1

假設你的功能都在 「全球範圍內」 可用的(即不是寫成另一個類/構造函數的私人成員),你可以像這樣通過字符串名稱調用你的函數:

window['comment_disp'](); 

這將是調用

comment_disp();