[英]how can i make a value from variable be a function name?
我創建了一個練習程序,從json創建一個動態菜單。 然后,每次單擊該動態菜單時,都會出現一個選項卡,其中包含選項卡名稱,具體取決於您單擊的選項卡的名稱。
我現在想要的,我還在想,是每次我點擊菜單,它會調用一個與我點擊的菜單名稱相同的功能。但我只是不知道該怎么做。 我的js函數是一個單獨的文件。 這是代碼:
....
$('.menu').click(function () {
dyna_tabs.add('Tab' + $(this).attr("rel"), //this is for the <a href= "-">
$(this).attr("rel"), //this if for the title
$(this).html()); // for the tab_content
fname = $(this).html(); // this is my variable name which i plan to use as function name
alert('this would be my function name ' + fname);
fname();
});
....
您可以在此處找到其余的動態選項卡代碼。 我只是做了一些編輯,從菜單中創建菜單然后選項卡。
所以...我輸入fname();
其中fname保存所謂的我的函數名稱的值。 但每次我運行我的程序時,錯誤消息顯示“fname不是函數”。 這里的任何人都知道如何做到這一點嗎? 請....
還有一件事,是否有人知道如何在我的動態標簽中放置一些HTML代碼。 或者里面的.html頁面? 謝謝你的閱讀
您可以使用另一個將調用必要功能的函數。 喜歡:
loader(fname);
function loader(s) {
switch(s) {
case 'xy': xy(); break;
...
}
}
您的另一個選擇可能是將您的函數存儲在一個對象中:
var myFunctions={
'xy' : function () {
//do something here
},
...
};
然后你可以輕松地稱呼它們:
myFunctions[fname];
這些不是完整的解決方案,只是您可以遵循的一些指導原則。 優於eval的優勢在於,使用這些解決方案,您無法運行的功能無法運行。 只能調用預定義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.