93 lines
2.3 KiB
JavaScript
93 lines
2.3 KiB
JavaScript
theme.ProductPage = (function() {
|
|
|
|
function ProductPage(container) {
|
|
this.$container = $(container);
|
|
|
|
//var sectionId = this.$container.attr('data-section-id');
|
|
|
|
//this.settings = {};
|
|
|
|
this.namespace = '.product-page';
|
|
|
|
this.onLoad();
|
|
}
|
|
|
|
ProductPage.prototype = $.extend({}, ProductPage.prototype, {
|
|
onLoad: function () {
|
|
var $product = this.$container.find('[data-js-product]'),
|
|
$gallery = $product.find('[data-js-product-gallery]'),
|
|
$countdown = $product.find('[data-js-product-countdown] .js-countdown'),
|
|
$text_countdown = $product.find('.js-text-countdown'),
|
|
$visitors = $product.find('.js-visitors');
|
|
|
|
if($gallery.length) {
|
|
this.$gallery = $gallery;
|
|
|
|
if(this.$gallery.find('[data-js-product-gallery-main]').attr('data-js-product-gallery-main') === 'mobile') {
|
|
function initGallery() {
|
|
if(theme.current.is_mobile) {
|
|
theme.ProductGallery.init($gallery);
|
|
}
|
|
};
|
|
|
|
$window.on('theme.resize', initGallery);
|
|
|
|
initGallery();
|
|
} else {
|
|
theme.ProductGallery.init($gallery);
|
|
}
|
|
}
|
|
|
|
if(theme.is_loaded) {
|
|
theme.ProductReview.update();
|
|
if(theme.Tooltip) {
|
|
theme.Tooltip.init();
|
|
}
|
|
|
|
if($countdown.length) {
|
|
theme.ProductCountdown.init($countdown);
|
|
}
|
|
|
|
if($text_countdown.length) {
|
|
theme.ProductTextCountdown.init($text_countdown);
|
|
}
|
|
|
|
if($visitors.length) {
|
|
theme.ProductVisitors.init($visitors);
|
|
}
|
|
|
|
theme.StoreLists.checkProductStatus($product);
|
|
|
|
if(theme.Tabs) {
|
|
theme.Tabs.init();
|
|
}
|
|
}
|
|
|
|
if(theme.StickySidebar) {
|
|
theme.StickySidebar.init(this.$container);
|
|
}
|
|
},
|
|
onUnload: function() {
|
|
this.$container.off(this.namespace);
|
|
|
|
if(this.$gallery && this.$gallery.length) {
|
|
theme.ProductGallery.destroy(this.$gallery);
|
|
this.$gallery = null;
|
|
}
|
|
|
|
if(theme.StickySidebar) {
|
|
theme.StickySidebar.destroy(this.$container);
|
|
}
|
|
|
|
if(theme.Tooltip) {
|
|
theme.Tooltip.destroy();
|
|
}
|
|
}
|
|
});
|
|
|
|
return ProductPage;
|
|
})();
|
|
|
|
$(function() {
|
|
theme.sections.register('product-page', theme.ProductPage);
|
|
}); |