2014-01-27 83 views
0

對不起,壞標題。對於我的生活,我無法找到一個好辦法做到這一點。我有一個 用於設置cookie的jquery對象。在我的代碼中,我使用該cookie 來收集來自用戶的信息以及執行各種其他功能。在某些情況下,問題是 我不希望cookie名稱爲'user-profile'我希望它是'admin-profile'。 有沒有辦法在我撥打userProfile()並更改cookie名稱時以某種方式傳遞選項?我想 的管理員配置文件' cookie基本上做的一切'用戶配置文件' cookie。我是一個新手,所以代碼示例對我來說最適合。jquery - 通過參數更改jquery對象

;(function($){ 
    $.fn.userProfile = function(opts) { 

     var userProfileCookie = { 
      name: 'user-profile', 
      options: { 
       path: '/', 
       expires: 365 
      } 
     }; 

     function userHeightCookie() { 
      var userData = $.parseJSON($.cookie(userProfileCookie.name)); 
      return(userData); 
     }; 

     function readHeightCookie(userInfo) { 
      $.cookie(userProfileCookie.name, JSON.stringify(userInfo), userProfileCookie.options); 
     }; 

     function removeProfileCookie() { $.cookie(userProfileCookie.name, null, userProfileCookie.options); } 

     if($(".slider").length > 0){ 
      $.cookie(userProfileCookie.name); 
     } 
    }})(jQuery); 

$(document).ready(function() { $('#mastHead').userProfile(); }); 

回答

1

使用opts參數如下:

;(function($){ 
    $.fn.userProfile = function(opts) { 

     var name = (opts.name || 'user') + '-profile'; 
     var userProfileCookie = { 
      name: name, 
      options: { 
       path: '/', 
       expires: 365 
      } 
     }; 

     function userHeightCookie() { 
      var userData = $.parseJSON($.cookie(userProfileCookie.name)); 
      return(userData); 
     }; 

     function readHeightCookie(userInfo) { 
      $.cookie(userProfileCookie.name, JSON.stringify(userInfo), userProfileCookie.options); 
     }; 

     function removeProfileCookie() { $.cookie(userProfileCookie.name, null, userProfileCookie.options); } 

     if($(".slider").length > 0){ 
      $.cookie(userProfileCookie.name); 
     } 
    }})(jQuery); 

$(document).ready(function() { $('#mastHead').userProfile({ name: 'admin' }); }); 
+0

天才!感謝@Barmar –