/********************************************* * cardcenter.js * ------------------------------------------- * @init * @plugin *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ j$(function(){ var u = new EPOS_CARD.Util(); // u インスタンスを作成 j$.acdControl(); j$.spTblControl(); j$.addParam(); u.$win.on("cbox_complete",function(){ j$.acdCookie(); }); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function(j$){ /* * アコーディオン制御 */ j$.acdControl = function(){ var u = new EPOS_CARD.Util(); // u インスタンスを作成 // vars var $anc = j$('a[href*="#anc"]'); // function var open_acd = function(e){ var $target = j$(e); if($target.length !== 0){ $target.find(".toggleTrigger").addClass("open"); $target.find(".toggleContent").slideDown(300); } }; // ページ遷移時 - ハッシュ var hash = location.hash; open_acd(hash); // ページ読み込み時 - cookie var toggleCookie = j$.cookie("cardcenterToggleID"); if(toggleCookie){ open_acd("#" + toggleCookie); var target = j$("#" + toggleCookie), position = target.offset().top, webkit = /webkit/; j$("html, body").animate({ scrollTop: position }, 300); } // アンカークリック時 $anc.on("click",function(){ var self = j$(this), ancID = self.attr("href"); open_acd(ancID); }); }; /* * SP用に住所を施設名の後に挿入 */ j$.spTblControl = function(){ var u = new EPOS_CARD.Util(); // u インスタンスを作成 /* element ------------------------ */ var $elm = j$(".js-spBeforeTxt"); if($elm.length === 0){ return false; } /* init ------------------------ */ $elm.each(function(){ var self = j$(this), $parent = self.parents("tr"), $target = $parent.find(".js-spAfterTxt"), _html = self.html(); $target.append(_html); }); }; /* * モーダル展開時、モーダル内のリンクにパラメータ付与 */ j$.addParam = function(){ var u = new EPOS_CARD.Util(); // u インスタンスを作成 /* element ------------------------ */ var $elm = j$(".cb-inline"); if($elm.length === 0){ return false; } /* function ------------------------ */ $elm.on("click",function(){ var self = $(this), param = self.data("modalparam"), $target = j$(self.attr("href")).find(".addParam"); if(!param){ return; } $target.each(function(){//add 20180628 var $this = $(this), //origin_URL = $target.attr("href"); origin_URL = $this.attr("href");//add 20180628 //$target.attr("href",origin_URL + param); $this.attr("href",origin_URL + param);//add 20180628 u.$win.on("cbox_cleanup",function(){ //$target.attr("href",origin_URL); $this.attr("href",origin_URL);//add 20180628 }); }); }); }; /* * モーダル内リンククリック時に地域アコーディオンcookieの生成 */ j$.acdCookie = function(){ j$("#cboxWrapper").find("a").on("click",function(){ var self = j$(this); if(self.hasClass("addParam")){ var getHref = self.attr("href"), getQuery = getHref.split("?")[1], parentID = j$('a[data-modalparam="?' + getQuery + '"]').closest(".cardcenter-toggle").attr("id"); j$.cookie("cardcenterToggleID", parentID); } }); }; })(jQuery);