1

有人为我的网上商店创建了一个无限滚动器。除了一件事之外,这非常有效。当您在页面的一半并单击产品时,您将转到产品页面。当用户点击浏览器后退按钮时,用户将返回到带有无限滚动条的页面。问题是脚本在用户第一次点击产品的位置再次加载所有产品。换句话说,当您点击后退按钮时,所有产品都会再次加载。搜索此站点后,我已阅读您可以使用 window.loacation.hash 做一些事情。问题是我是 JS 和 Jquery 的初学者,所以我不知道这将如何适合下面的代码。任何帮助都更受欢迎......

很抱歉下面代码中的任何错误,但我不得不取消脚本....

我的代码

var currentPage = {{ collection.page }};
var collectionPages = {{ collection.pages }};
var category = '{{ collection.internal.url }}';
var appendProduct = function (product) {
    if (currentPage == 1) {
        return false
    }
    $('<div class="product"></div>').html(product).appendTo($(".productsGrid"));
    var i = 1;
    $('.product').each(function () {
        if (i++ % 3 == 0) $(this).addClass('last')
    })
};
var loadProducts = function () {
    var url = "http://www.riemen-tekoop.nl/" + category + "/page" + currentPage + ".ajax" + window.location.search;
    $.getJSON(url, function (data) {
        $.each(data.products, function (index, product) {
            var imageUrl = product.image.replace('50x50x2', '210x175x2');
            var itemHtml = '' + '<a href="' + product.url + '" title="' + product.title + ' ' + product.brand.title + '"><img src="' + imageUrl + '" width="210" height="175" alt="' + product.title + ' ' + product.brand.title + '" title="' + product.title + ' ' + product.brand.title + '"/>';
            if (product.price.price_old) {
                itemHtml = itemHtml + '<div class="perc">' + (((+product.price.price / product.price.price_old) * 100) - 100).toFixed(0) + '%</div>'
            }
            itemHtml = itemHtml + '<div class="caption" style="display:none;"><a href="' + product.url + '" class="opener">Quick view</a></div>' + '</a>' + '<div class="info">' + '<h3>' + '<a href="' + product.url + '" title="' + product.title + ' ' + product.brand.title + '">' + product.title + ' ' + product.brand.title + '</a>' + '</h3>' + '<div class="gridAddToCart">' + '<a class="btnLink" href="' + product.url + '" title="' + product.title + ' ' + product.brand.title + '" rel="nofollow" alt="Bekijk details"><span>{{ '
            Details ' | t }}</span></a>' + '<a class="btnWishlist" href="{{ ' / account / wishlistAdd / ' }}' + product.id + '" title="{{ '
            Add to wishlist ' | t }}" rel="nofollow" alt="Zet op {{ '
            Wishlist ' | t }}"></a>' + '</div>' + '<div class="price"><strong>' + product.price.price_money + '</strong>';
            if (product.price.price_old) {
                itemHtml = itemHtml + ' <span>' + product.price.price_old_money + '</span>'
            }
            itemHtml = itemHtml + '<div class="clear"></div>' + '</div>' + '</div>' + '<span class="imgshadow"></span>';
            appendProduct(itemHtml)
        });
        $("#overlay").fadeOut();
        $(window).scroll(function () {
            update()
        })
    })
};
loadProducts();
var isUpdating = false;
var update = function () {
    if ($(window).height() + $(window).scrollTop() >= $(document).height() - 4000) {
        if (currentPage < collectionPages && !isUpdating) {
            isUpdating = true;
            currentPage++;
            $("#overlay").fadeIn();
            $(window).unbind('scroll');
            setTimeout(function () {
                loadProducts();
                setTimeout(function () {
                    isUpdating = false
                }, 500)
            }, 500)
        }
    }
};
$(window).scroll(function () {
    update()
});
4

0 回答 0