1

更新: jQuery(document).data(key,value); として保存できることを思い出しました。後で使用しますが、これは良い考えですか? それはパフォーマンス面で高価なオプションでしょうか?

後で使用するために、json 配列のキーと値のペアから自動的に var を作成しようとしています。

したがって、基本的には、1- デフォルト設定 (defSets) 2- ユーザー設定 (usrSets) の 2 つの設定セットを作成しました。アイデアは、存在する場合はユーザー設定を使用し、そうでない場合はデフォルト設定にフォールバックすることです。すべての変数を 1 つずつ書き込みたくないので、後でさまざまな場所で使用するために、これらの配列からグローバル変数を作成する方法はありますか?

次のような行に沿った sth: var [key_name] = [key_value_read_from_User_Setting_or_Default_Set];

以下は私の実際のコードです。問題は、各ループ内で変数を作成しているようですが、それらにグローバルにアクセスできないと思います。

jQuery(document).ready(function(e) {
// read default settings array from cookie if exist, otherwise create initial default settings and save
  if (jQuery.cookie("defSets") != null) {
    var defSets = jQuery.parseJSON(jQuery.cookie("defSets"))
  } else {
    var defSets = { 'ord': 'true', 'itemc': 4, 'ratio': 'sq', 'sortby': 'def'};
    jQuery.cookie("defSets", JSON.stringify(defSets)); 
  };
  // read user settings array from cookie if exist, otherwise create initial empty user settings and save
  if (jQuery.cookie("usrSets") != null) {
    var usrSets = jQuery.parseJSON(jQuery.cookie("usrSets"))
  } else { 
    var usrSets = {};
    jQuery.cookie("usrSets", JSON.stringify(usrSets));
  }

  jQuery.each(defSets, function(key, value){
    // check every default setting
    if (usrSets[key] != undefined) {
  // if a user setting exists for respective default setting use that
      var key = usrSets[key];
      // uval = usrSets[key];
      // dval = defSets[key];
      // console.log("User have a setting for -" + key + "- So the value (" + uval + ") will be used instead of default: " + dval);
} else {
      var key = defSets[key];
      // console.log ("No user setting for -" + key + "- will use default val of :" + dval);
};
});

これらの後、理想的には、var ratio が既に上から作成されていると仮定して、これらの行の下のどこでもそれらの var を使用できるようになります。私はできたjQuery(".selector").height(jQuery(this).width * ratio);

4

1 に答える 1