//星表示
(function () {
// 表示形式ごとにセレクターを指定
var selector_list = [
// ピックアップ
{
// 商品一覧のセレクター
'product_items': '.block-thumbnail-t li',
// 商品一覧の中で、1つの商品を表すセレクター
'product': '.block-thumbnail-t--goods',
// 商品の要素の中にある、Aタグのセレクター
'anchor': '.block-thumbnail-t--goods-image a',
// スターを表示したいセレクター
'display_star': '.block-thumbnail-t--goods-image',
// スターの追加位置(append, prepend, after, beforeのどれか)
'display_position': 'after'
}
];
// スターの表示タグ
var star_simple_tag = 'list-starsimple';
// 追加するスター表示用のdivタグ
var star_display_div = '
';
/// 以下は修正不要 ///
jQuery.each(selector_list, function (i, s) {
if (!jQuery(s.product_items).length) { return; }
var addStarDisplayDiv = function (p) {
var $p = jQuery(p);
var $a = $p.find(s.anchor);
if (! $a.length) { return; }
var productCd = $a.attr('href').match('/g\/g(.+)\/$');
if (productCd.length < 2) { return; }
switch (s.display_position) {
case 'append':
$p.find(s.display_star).append(star_display_div.replace('###ProductCd###', productCd[1])); break;
case 'prepend':
$p.find(s.display_star).prepend(star_display_div.replace('###ProductCd###', productCd[1])); break;
case 'before':
$p.find(s.display_star).before(star_display_div.replace('###ProductCd###', productCd[1])); break;
case 'after':
$p.find(s.display_star).after(star_display_div.replace('###ProductCd###', productCd[1])); break;
}
};
jQuery(s.product_items + ' ' + s.product).each(function (i, p) {
addStarDisplayDiv(p);
});
// 無限スクロール対応
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (m) {
m.addedNodes.forEach(function (e) {
if (e.tagName === document.querySelector(s.product_items + ' ' + s.product).tagName) {
addStarDisplayDiv(e);
}
});
});
revico.global.star.exec();
});
observer.observe(document.querySelector(s.product_items), { childList: true });
});
})();