簡體   English   中英

jQuery-如何將變量傳遞給函數以使用?

[英]Jquery - How do you pass a variable into a function to use?

我被一個常見的Jquery發生的問題困擾着,但是我不知道如何解決!

我有5個變量-

 var pubtimed 
 var toolstimed 
 var newstimed 
 var mylinkstimed 
 var partnerstimed 

用於存儲打開和關閉狀態。
然后,我有了一個腳本,該腳本檢查cookie的最新狀態並相應地更新變量,然后將詳細信息轉發到渲染函數上-

var map = {
    'pub': $.cookie('nwphportal_tabExpPub'),
    'tools': $.cookie('nwphportal_tabExpTools'),
    'news': $.cookie('nwphportal_tabExpNews'),
    'mylinks': $.cookie('nwphportal_tabExpLinks'),
    'partners': $.cookie('nwphportal_tabExpPartners')
}

$.each(map, function (key, value) {
    if (value != null) {
        var varname = key + 'timed';
        varname = value;
        renderScrn(varname)
    } else {
        var varname = key + 'timed';
        varname = "1"
        renderScrn(varname)
    }
});

我的問題是我希望變量varname被視為上述5個變量中的每個變量(例如,鍵加時間= pubtimed)。 但這沒有發生,我只是得到一個錯誤。 我可以放置一個if語句列表來解決此問題,但想知道是否有更好的解決方案?

如果可以的話請幫忙!

為您的時間加油。 保羅

我將進行命名空間處理,將相關數據封裝到一個對象中:

var timed = {};

$.each(map, function (key, value) {

    if (value != null) {
        timed[key] = value;
        renderScrn(varname);
    }

    else {
        timed[key] = 1;
        renderScrn(varname);
    }
});​

因此,您可以將它們timed.partnerstimed.pub等等。

如果它們是全局變量,則可以執行以下操作:

window[key + 'timed'] = value;

如果它們不是全局的(盡管從您發布的內容來看,它們看起來是這樣),則必須將它們保留在容器對象中,有點像“地圖”:

var container = {
  pubtimed: null,
  // ...
};

// ...

    container[key + 'timed'] = value;

編輯 -如@galambalazs在他的回答中所寫,最好避免這樣做。 如果設置了容器,則只需直接使用鍵即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM