if(typeof j$ == 'undefined'){ jQuery.noConflict(); // このスクリプト行を追加します. var j$ = jQuery; // jj$() を jQuery のショートカットにします. } /*-------------------------------------------------------------------------------------------------* * レシピの選択肢を変更するクロージャー *-------------------------------------------------------------------------------------------------*/ Sc = function(){ this.initialize.apply(this, arguments);} j$.extend(Sc.prototype,{ version:1 ,initialize: function(element,selement,options){ this.sc = {10:[{key:100,value:"ご飯もの"},{key:110,value:"うどん"},{key:120,value:"そば"},{key:130,value:"そうめん・ひやむぎ"},{key:140,value:"ラーメン"},{key:150,value:"パスタ"},{key:160,value:"パン"}],20:[{key:200,value:"牛肉"},{key:210,value:"豚肉"},{key:220,value:"鶏肉"},{key:230,value:"その他の肉"},{key:240,value:"ハム・肉加工品"}],30:[{key:300,value:"魚"},{key:310,value:"カニ・エビ"},{key:320,value:"イカ・タコ"},{key:330,value:"貝類"},{key:340,value:"練り物・加工品"}],40:[{key:400,value:"イモ類中心"},{key:410,value:"葉もの中心"},{key:420,value:"根菜類中心"},{key:430,value:"豆類中心"}],50:[{key:500,value:"卵料理"},{key:510,value:"豆腐料理"},{key:520,value:"海藻料理"},{key:530,value:"乳製品"}],60:[{key:600,value:"乳系"},{key:610,value:"卵系"},{key:620,value:"小麦粉系"},{key:630,value:"米系"},{key:640,value:"モチ系"},{key:650,value:"クリーム系"},{key:660,value:"あずき系"}],70:[{key:700,value:"アルコール"},{key:710,value:"コーヒー・ティー"},{key:720,value:"日本茶"},{key:730,value:"フルーツ系"},{key:740,value:"乳製品系"},{key:750,value:"炭酸系"},{key:760,value:"水・アミノ酸系"}]}; this.element = j$(element) .bind("change",{tmp:this},this.onChange) ; this.selement = j$(selement) .bind("change",{tmp:this},this.onChangeScate) ; this.options = options; if(this.options){ this.selement.val(this.options.sc); this.element.val(this.options.bc); } } ,onChange: function(event){ var tmp = event.data.tmp; var index = j$(this).val(); tmp.actionScate(tmp,index); } ,actionScate: function(tmp,index){ var a = tmp.sc[index]; var str = ""; var selected = ""; if(a){ j$.each(a,function(i,option){ if(i == 0) selected = option.key; str += ''; }); }else{ str = ''; j$.each(tmp.sc,function(i,options){ j$.each(options,function(j,option){ str += ''; }); }); } tmp.selement.html(str); this.selement.val(selected); } ,onChangeScate: function(event){ var tmp = event.data.tmp; var v = j$(this).val(); if(v){ var index = v.substr(0,1) + '0'; tmp.element.val(index); tmp.actionScate(tmp,index); tmp.selement.val(v); } } }); /*-------------------------------------------------------------------------------------------------* * レシピのフォームが増えるクロージャー *-------------------------------------------------------------------------------------------------*/ Stage = function(){ this.initialize.apply(this, arguments);} j$.extend(Stage.prototype,{ version:1 ,initialize: function(stagePanel,dummyPanel,button){ this.stagePanel = j$(stagePanel); this.dummyPanel = j$(dummyPanel); this.button = j$(button); this.pkey = parseInt(this.stagePanel.find("textarea:last").attr("pkey")) + 1; this.index = parseInt(this.stagePanel.find("textarea:last").attr("index")) + 1; this.add(); } ,add: function(){ var tmp = this; var nextPkey = tmp.pkey; var nextIndex = tmp.index; var newPanel = tmp.dummyPanel.clone(); var textarea = newPanel.find("textarea:last"); textarea.attr({pkey:nextPkey ,index:nextIndex ,name:textarea.attr("name") + nextPkey }); var file = newPanel.find("input.file:last"); file.attr({name:file.attr("name") + nextPkey}); newPanel.show() .removeAttr("id") .find("span:first") .html('作り方' + nextIndex + ':'); tmp.stagePanel.append(newPanel); } });